/fabrikate-sample-app

The repo contains Fabrikate definitions for a boilerplate Cloud Native stack and Helm charts for a demo application called Project Jackson.

Primary LanguageSmarty

sample app

This repository is a high level deployment defintion for Kubernetes. The repo contains Fabrikate defintions for a boilerplate Cloud Native stack and Helm charts for a demo application called Project Jackson.

Features

  • Istio based canary deployment configuration of the Project Jackson API microservice
  • Multicluster support

How to adjust the canary deployment traffic wights with Fabrikate

  1. Download version 0.3.0 or greater of Fabrikate
  2. From the root of this repository run the following command

fab set --subcomponent services.project-jackson.jackson-api service.canaryWeight=15

How to adjust the canary deployment traffic weights manually

  1. Navigate to the common.yaml file.
  2. Modifiy the stableWeight and canaryWeight values. (Below sure they total to 100)
config:
  service:
      name: jackson-api
      port: 8080
      labelName: jackson
      canaryWeight: 10
      stableWeight: 90
  appName: spring-boot-api
  enableVirtualService: true
  enableDestinationRule: true

How to use TLS with Istio Ingress

  1. See Istio TLS Documentation to generate ingress certificate secrets, and deploy them to your cluster.

  2. Uncomment the TLS configuration (lines 15-27).

How to generate manifest YAML with Fabrikate on this repository

  1. Run Fabrikate at the root level of this repository
    1. fab install .
    2. fab generate $ENV_CONFIG_NAME

Example of manifested YAML

This repository is linked to a manifest repository that has the output YAML

Deploying to Cluster

Make sure to apply jackson-secrets to your cluster.