Skip to content

Latest commit

 

History

History
91 lines (63 loc) · 3.33 KB

README.md

File metadata and controls

91 lines (63 loc) · 3.33 KB

New Online Boutique Demo

This demo is based on the Google cloud microservices demo

It's a smaller version with just a few GO micro-services using REST APIs

Kardinal steps

  1. Starts a local K8s cluster like Minikube
minikube start --driver=docker --cpus=10 --memory 8192 --disk-size 32g
minikube addons enable ingress
  1. Both prod.app.localhost and dev.app.localhost defined in the host file
# Add these entries in the '/private/etc/hosts' file
127.0.0.1 prod.app.localhost
127.0.0.1 dev.app.localhost
  1. Install Istio resources in the local cluster
istioctl install --set profile=default -y
  1. Deploy Kardinal Manager in the local cluster
kardinal manager deploy local-minikube
  1. Deploy the online boutique app with Kardinal
kardinal deploy --k8s-manifest ./release/obd-kardinal.yaml
  1. Start the tunnel to access the services (you may have to provide you password for the underlying sudo access)
minikube tunnel
  1. Open the production page in the browser to see the production online boutique

Development Guide

This doc explains how to build and run the OnlineBoutique source code locally using the tilt command-line tool.

Prerequisites

Local Cluster

  1. Launch a local Kubernetes cluster with one of the following tools:

    • To launch Minikube (tested with Ubuntu Linux). Please, ensure that the local Kubernetes cluster has at least:

      • 4 CPUs
      • 4.0 GiB memory
      • 32 GB disk space
      minikube start --cpus=4 --memory 4096 --disk-size 32g
    • To launch Docker for Desktop (tested with Mac/Windows). Go to Preferences:

      • choose “Enable Kubernetes”,
      • set CPUs to at least 3, and Memory to at least 6.0 GiB
      • on the "Disk" tab, set at least 32 GB disk space
  2. Run kubectl get nodes to verify you're connected to the respective control plane.

  3. Two options:

    1. Run sudo tilt up. To deploy the app using the ./release/obd-kardinal.yaml file, with Kardinal annotations, in the cluster. Take into account that it will use the container images defined in the YAML, it will try to pull them from the cloud. The sudo privileges are necessary in order to port-forward the port "80"
    2. Run sudo tilt up -- --build frontend --build productcatalogservice. To deploy the app using the ./release/obd-kardinal.yaml file and also create a new 'dev' flow with dev images version for the services specified with the build flag (valid values: 'frontend', 'cartservice', 'productcatalogservice', convine these as you want). Edit the source code and check the changes in the dev URL, Tilt will trigger the hot-reload for it

Cleanup

If you've deployed the application with tilt up command, you can run tilt down --delete-namespaces to clean up the deployed resources, the --delete-namespaces flas is important because otherwise it won't delete the namespace.