Broadleaf Microservices
  • v1.0.0-latest-prod

Helm Charts

Now that you have your own container images built and deployed to your own registry, you can now utilize our example Helm charts as a starter to deploy your various Broadleaf Flex Package compositions to an existing Kubernetes cluster. See the Deployment Flexibility article for more details if you’re not familiar with Broadleaf’s Flex Package technology.

Initializr/Manifest-based Project Modification Guide

Important
The following section is only applicable to Initializr-based projects

With an initializr-based project, we’ve made it easy to generate the necessary helm charts that represent the Flex Component Compositions represented in your manifest.yml .

helm:generate Maven Plugin

In your manifest directory, execute the following command ./mvnw helm:generate which when invoked, will produce the appropriate helm charts in a helm directory located at the same directory alongside the rest of the generated project artifacts.

This helm directory also contains several install scripts that make it easy for you to install your Broadleaf ecosystem into a Kubernetes cluster. Please follow the Deploy to Kubernetes tutorial for details on use.

Legacy MicroserviceDemo-based Project Helm Charts

Important
The following section is only applicable to legacy MicroservicesDemo-based projects only
Note
Please see the README on the "Helm Charts Starter" project that is included with the MicroserviceDemo Project Starters. This project provides a base starting point that you can use as a reference for your specific deployment as well as provides a sample install.sh script to deploy all the resources requirerd in a full Broadleaf installation containing all the demo starter images

Demo Docker Images

Important

All references to a "Starter Project" or "Demo Images" assumes you have obtained credentials outlined in the guide: Getting Started Locally and you have the ability to authenticate with Broadleaf’s docker registry and maven nexus.

e.g.

docker login repository.broadleafcommerce.com:5001

The following tables describe the various demo images that are available and used across the different Microservice Starter Projects. This serves as a general reference to their relative location within the base Helm charts or starter umbrella charts. The expectation being that clients replace these demo images with their own in a real implementation.

Note
typically the image tag versions defined in the starter project’s charts represent the latest stable releases of the current demo

Common Supporting Utility Services

Resource Primary Container Demo Image Base Chart Umbrella Chart

Backoffice Admin Gateway

repository.broadleafcommerce.com:5001/broadleaf/admingateway-monitored

admingateway

blc-web-stack

Backoffice Admin

repository.broadleafcommerce.com:5001/broadleaf/adminweb

adminweb

blc-web-stack

Customer Facing Storefront Gateway

repository.broadleafcommerce.com:5001/broadleaf/commercegateway-monitored

commercegateway

blc-web-stack

Customer Facing Storefront

repository.broadleafcommerce.com:5001/broadleaf/commerce-nextjs-starter

commerceweb

blc-web-stack

Kafka

confluentinc/cp-kafka

kafka

blc-supporting-stack

Open API UI

repository.broadleafcommerce.com:5001/broadleaf/openapi-ui

openapi-ui

blc-supporting-stack

Solr

repository.broadleafcommerce.com:5001/broadleaf/docker-solr

solr

blc-supporting-stack

Zookeeper

confluentinc/cp-zookeeper

zookeeper

blc-supporting-stack

ZK UpConfig Job - a Kubernetes Job that "upconfigs" Broadleaf SOLR schema configuration to Zookeeper. Assumes zookeeper is up and running.

repository.broadleafcommerce.com:5001/broadleaf/docker-solr

job-data

blc-supporting-stack

Data Job - [Initializr-based] a Kubernetes Job that initializes Broadleaf Liquibase Schema changes - NOTE: this only applies to initializr based projects.

repository.broadleafcommerce.com:5001/broadleaf-initializr/balanced-postgresql-kafka/data

job-zk-upconfig

blc-supporting-stack

Optional Monitoring & Observability Stack

Name Typical Helm Installation Notes

Kube Prometheus Stack

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

kubectl apply -f kube-prometheus-stack/grafana/blc-dashboard-configmap.yaml

helm install -f kube-prometheus-stack/blc-values.yaml kube-prometheus-stack prometheus-community/kube-prometheus-stack --version 15.2.1

Typical Broadleaf overrides and settings can be found in: kube-prometheus-stack/blc-values.yaml along with an out-of-box Broadleaf Grafana dashboard (kubectl apply -f kube-prometheus-stack/grafana/blc-dashboard-configmap.yaml)

Elastic Stack

helm repo add elastic https://helm.elastic.co

helm install elasticsearch elastic/elasticsearch --version 7.16.1

helm install apm-server elastic-stack/apm-server

helm install -f elastic-stack/filebeat/blc-values.yaml filebeat elastic/filebeat

Sample APM Server and Filebeat config are located in elastic-stack/apm-server/values.yaml and elastic-stack/filebeat/blc-values.yaml


The following sections represent the different images used depending on which example flex package composition you choose to deploy for your core commerce backend services.

Broadleaf Auth Service

Resource Primary Container Demo Image Base Chart Umbrella Chart

Auth Service

repository.broadleafcommerce.com:5001/broadleaf-demo/auth or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/balanced-postgresql-kafka/auth

auth

blc-auth-demo

Resource Primary Container Demo Image Base Chart Umbrella Chart

browse - The Browse Flex Package composes the following microservices together: Asset, Catalog Browse, Catalog, Personalization, Pricing, Offer, Campaign, Vendor, Menu, etc…​

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-browse-flex-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/balanced-postgresql-kafka/browse

flex-balanced-browse

blc-balanced-flex-demo

cart - The Cart Flex Package composes the following microservices together: Cart Ops, Cart, Customer, Inventory, Order Ops, Order, etc…​

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-cart-flex-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/balanced-postgresql-kafka/cart

flex-balanced-cart

blc-balanced-flex-demo

processing - The Processing Flex Package composes the following microservices together: Import, Indexer, Scheduled Jobs, Campaign*, Catalog*, Customer*, Inventory*, Pricing*, etc…​

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-processing-flex-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/balanced-postgresql-kafka/processing

flex-balanced-processing

blc-balanced-flex-demo

supporting - The Supporting Flex Package composes the following microservices together: Admin Navigation, Admin User, Metadata, Sandbox, Tenant, Search, Notification, etc…​

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-supporting-flex-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/balanced-postgresql-kafka/supporting

flex-balanced-supporting

blc-balanced-flex-demo

Common ENV ConfigMap - A Config Map containing common environment variables for a Balanced Flex Package composition

n/a

flex-balanced-common-env

blc-balanced-flex-demo

Routes ENV ConfigMap - A Config Map containing route environment variables for a Balanced Flex Package composition

n/a

flex-balanced-routes-env

blc-balanced-flex-demo

SOLR Create Collection JOB - A Kubernetes job that initializes Broadleaf SOLR collections. Assumes SOLR is ready and available

repository.broadleafcommerce.com:5001/broadleaf/docker-solr

job-solr-create-collections

blc-balanced-flex-demo

Note
(*) The Processing Flex Package has some unique properties wherein some services are only included with input listeners for import and sandboxing transitions ONLY (and will be exempt from servicing typical request traffic). i.e. heavy back office functions can be scaled independently while not impacting customer facing browse flows or vice versa.

Granular Flex Package Composition

The following represents all the services deployed individually.

Resource/Image Base Helm Chart Umbrella Chart

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-adminnav-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/adminnav

flex-granular-adminnav

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-adminuser-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/adminuser

flex-granular-adminuser

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-asset-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/asset

flex-granular-asset

blc-granular-flex-demo

[DEPRECATED] repository.broadleafcommerce.com:5001/broadleaf-demo/demo-campaign-application

flex-granular-campaign

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-cart-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/cart

flex-granular-cart

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-cartops-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/cartops

flex-granular-cartops

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-catalog-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/catalog

flex-granular-catalog

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-catalogbrowse-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/catalogbrowse

flex-granular-catalogbrowse

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-content-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/content

flex-granular-content

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-creditaccount-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/creditaccount

flex-granular-creditaccount

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-customer-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/customer

flex-granular-customer

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-fulfillment-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/fulfillment

flex-granular-fulfillment

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-import-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/import

flex-granular-import

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-indexer-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/indexer

flex-granular-indexer

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-inventory-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/inventory

flex-granular-inventory

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-menu-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/menu

flex-granular-menu

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-metadata-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/metadata

flex-granular-metadata

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-notification-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/notification

flex-granular-notification

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-offer-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/offer

flex-granular-offer

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-order-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/order

flex-granular-order

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-orderops-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/orderops

flex-granular-orderops

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-paymenttransaction-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/paymenttransaction

flex-granular-paymenttransaction

blc-granular-flex-demo

[DEPRECATED] repository.broadleafcommerce.com:5001/broadleaf-demo/demo-personalization-application

flex-granular-personalization

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-pricing-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/pricing

flex-granular-pricing

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-ratings-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/ratings

flex-granular-ratings

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-sandbox-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/sandbox

flex-granular-sandbox

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-scheduledjob-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/scheduledjob

flex-granular-scheduledjob

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-search-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/search

flex-granular-search

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-shipping-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/shipping

flex-granular-shipping

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-tenant-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/tenant

flex-granular-tenant

blc-granular-flex-demo

repository.broadleafcommerce.com:5001/broadleaf-demo/demo-vendor-application or [Initializr-based] repository.broadleafcommerce.com:5001/broadleaf-initializr/granular-postgresql-kafka/vendor

flex-granular-vendor

blc-granular-flex-demo

Granular Common ENV Config Map

flex-granular-common-env

blc-granular-flex-demo

Granular Routes ENV Config Map

flex-granular-routes-env

blc-granular-flex-demo

SOLR Create Collection JOB - repository.broadleafcommerce.com:5001/broadleaf/docker-solr

job-solr-create-collections

blc-granular-flex-demo