Tips & Tricks

we’re super close from recommending folks use jx create cluster ... --vault --gitops which uses a git repository to store all the configuration changes + versions of stuff - and uses Vault to store all secrets

we just merged the last few fixes so it should work for static jenkins servers with the latest jx binary - feb 7

Info

It is Ready: jx create cluster gke --vault --gitops --no-tiller

Multiple Micro-services

if 1 microservice was 1 helm chart with a few different containers for example; you may have a few repos that just make binaries/docker images - then 1 repo which contains the helm chart of the microservice - you can also easily combine microservices together into an uber helm chart - James Strachan

we prefer to use multiple repositories so that things are more microservice based. The problem with monorepos is everything gets released on every change; with separate repos its easier to manage change etc

to handle changing versions of things across repositories we use updatebot ourselves to do ‘CI/CD of dependencies’ - we kinda think of it as promotion of dependencies like we promote microservices into environments - its PRs generated as part of the release process

the main decision to make really is, , if you have, say, 3 microservices that are fairly tightly coupled; do you combine 3 versions of them all into 1 chart and then release that 1 chart when its all tested together; or do you release the 3 things totally independently - it depeends on coupling and team structure really & you can switch from one to the other at any time really

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Setup:
$ jx create cluster gke -n team1 --default-environment-prefix team1 
$ jx create quickstart -p app1
$ jx create quickstart -p app2
$ jx create quickstart -p app3

# The 5 repos:
environment-team1-staging
environment-team1-production
app1
app2
app3