SlideShare uma empresa Scribd logo
1 de 21
Deploying Microservices -
Makefiles, K8S Config Templates,
Git Submodules, Helm, Git-crypt
and Jenkins
Satish Devarapalli
$whoami
Satish Devarapalli
Cloud Platform Architect @ Wolters Kluwer
@devasat
Agenda
● Project Intro
● Makefiles
● Why Helm
○ K8S Config Templates
○ Version Management
○ Property Lookup Hierarchy
○ Release = Code + Config + DB Change
● Passwords Management
● Spinnaker vs. Jenkins
Project Intro
Platform
auth 𝞵 svc𝞵 svc ...
● Simplify developer onboarding
● Consistent commands usage on workstations and Jenkins
● Build and deploy Steps
○ Build container
■ Build
■ Tag
■ Publish
○ Deploy
■ Environment parameters
■ K8s config templates
Makefiles
Naming Convention
project-prefix/service:version-githash
Example: wk/auth:1.0-a8765
make clean build deploy
make env=qa deploy
Makefiles
Makefiles
Makefiles
𝞵 svc Makefile
Parent Makefile
Agenda
● Project Intro
● Makefiles
● Why Helm
○ K8S Config Templates
○ Version Dependency Management
○ Property Lookup Hierarchy
○ Release = Code + Config + DB
● Passwords Management
● Spinnaker vs. Jenkins
K8S Config Templates
● Configuration files are similar
○ Deployment
○ Service
○ Ingress
○ Horizontal Pod Autoscaler
○ Config Map
● Helm Template Engine
○ Go Templates
○ Built-in objects
○ Dry run option
○ NOTES.txt
Version Management
Helm Chart Dependencies
Platform
1.0
auth
1.0
𝞵 svc
1.0
𝞵 svc
1.0
...
Platform
1.1
auth
1.0
𝞵 svc
1.0
𝞵 svc
1.1
...
Platform
1.2
auth
1.0
𝞵 svc
1.2
𝞵 svc
1.1
...
Platform
1.3
auth
1.0
𝞵 svc
1.2
𝞵 svc
1.1
...
Property Lookup Hierarchy
Identical in all environments
DEV QA PROD
PROJECT
Identical in all environments
DEV QA PROD
𝞵 svc
Identical in all environments
DEV QA PROD
replicaCount=1
replicaCount=4
helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db-
server=cmdline-override.wk.com
1
2
3
4
1
2
Common across all microservices and in all environments
Common across all microservices in an environment
3
4
Common for a specific microservice in all environments
Specific value for a specific microservice in a specific environment
replicaCount=2
Property Lookup Hierarchy
Identical in all environments
DEV QA PROD
PROJECT
Identical in all environments
DEV QA PROD
𝞵 svc
Identical in all environments
DEV QA PROD
replicaCount=1
replicaCount=4
helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db-
server=cmdline-override.wk.com
1
2
3
4
replicaCount=2
1
Property Lookup Hierarchy
Identical in all environments
DEV QA PROD
PROJECT
Identical in all environments
DEV QA PROD
𝞵 svc
Identical in all environments
DEV QA PROD
replicaCount=1
replicaCount=4
helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db-
server=cmdline-override.wk.com
1
2
3
4
replicaCount=2
2
Property Lookup Hierarchy
Identical in all environments
DEV QA PROD
PROJECT
Identical in all environments
DEV QA PROD
𝞵 svc
Identical in all environments
DEV QA PROD
replicaCount=1
replicaCount=4
helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db-
server=cmdline-override.wk.com
1
2
3
4
replicaCount=2
3
Property Lookup Hierarchy
Identical in all environments
DEV QA PROD
PROJECT
Identical in all environments
DEV QA PROD
𝞵 svc
Identical in all environments
DEV QA PROD
replicaCount=1
replicaCount=4
helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db-
server=cmdline-override.wk.com
1
2
3
4
replicaCount=2
4
● Option 1: package environment values in to chart and extract them at install
time
○ helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml
● Option 2: create a chart for each environment
○ Project1-0.1.0-dev.tgz, project1-0.1.0-qa.tgz, project1-0.1.0-prod.tgz
● Option 3: package environment values as sub-charts
Property Lookup Hierarchy
https://github.com/kubernetes/helm/issues/2620
Release = Code + Config + DB
Helm Chart
Chart auth-1.0 = auth:1.0 + config 1.0
Chart auth-1.1 = auth:1.1 + config 1.0
Chart auth-1.2 = auth:1.1 + config 1.2
?
+ 0-db.sql
+ 0-db.sql
+ 1-db.sql
Reference: Containerizing SQL DB changes with Flyway, Kubernetes, and OpenShift
https://developers.redhat.com/blog/2018/01/10/flyway-containerized-db-changes/
Passwords Management
● Kubernetes Secrets
● Separate Git repository
● Git-crypt
○ GPG keys
○ Production keys accessible only to operations team
● Future
○ Hashicorp Vault
Helm Plugin
Spinnaker vs. Jenkins
● Spinnaker
○ Kubernetes V2 plugin - promising
■ Helm support not GA yet
○ Administration?
○ Cost?
● Jenkins
○ Canary deployment
○ Blue/green
Thank You
HBO

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Deploying NGINX Plus with Ansible
Deploying NGINX Plus with AnsibleDeploying NGINX Plus with Ansible
Deploying NGINX Plus with Ansible
 
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
Docker swarm-mike-goelzer-mv-meetup-45min-workshop 02242016 (1)
 
OpenShift & SELinux with Dan Walsh @rhatdan
OpenShift & SELinux with Dan Walsh @rhatdanOpenShift & SELinux with Dan Walsh @rhatdan
OpenShift & SELinux with Dan Walsh @rhatdan
 
Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...
Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...
Activision's Skypilot: Delivering Amazing Game Experiences Through Containeri...
 
Docker Swarm Meetup (15min lightning)
Docker Swarm Meetup (15min lightning)Docker Swarm Meetup (15min lightning)
Docker Swarm Meetup (15min lightning)
 
Kubernetes Security
Kubernetes SecurityKubernetes Security
Kubernetes Security
 
Interconnecting containers at scale #Dockercon
Interconnecting containers at scale #Dockercon Interconnecting containers at scale #Dockercon
Interconnecting containers at scale #Dockercon
 
Security best practices for kubernetes deployment
Security best practices for kubernetes deploymentSecurity best practices for kubernetes deployment
Security best practices for kubernetes deployment
 
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
 
Load Balancing Applications with NGINX in a CoreOS Cluster
Load Balancing Applications with NGINX in a CoreOS ClusterLoad Balancing Applications with NGINX in a CoreOS Cluster
Load Balancing Applications with NGINX in a CoreOS Cluster
 
DockerCon EU 2015: What's New with Docker Trusted Registry
DockerCon EU 2015: What's New with Docker Trusted RegistryDockerCon EU 2015: What's New with Docker Trusted Registry
DockerCon EU 2015: What's New with Docker Trusted Registry
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
 
DockerCon Live 2020 - Securing Your Containerized Application with NGINX
DockerCon Live 2020 - Securing Your Containerized Application with NGINXDockerCon Live 2020 - Securing Your Containerized Application with NGINX
DockerCon Live 2020 - Securing Your Containerized Application with NGINX
 
DCSF19 Deploying Istio as an Ingress Controller
DCSF19 Deploying Istio as an Ingress Controller DCSF19 Deploying Istio as an Ingress Controller
DCSF19 Deploying Istio as an Ingress Controller
 
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupMetal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and Notary
 
Luca Relandini - Microservices and containers networking: Contiv, deep dive a...
Luca Relandini - Microservices and containers networking: Contiv, deep dive a...Luca Relandini - Microservices and containers networking: Contiv, deep dive a...
Luca Relandini - Microservices and containers networking: Contiv, deep dive a...
 
Moby and Kubernetes entitlements
Moby and Kubernetes entitlements Moby and Kubernetes entitlements
Moby and Kubernetes entitlements
 
Secrets management vault cncf meetup
Secrets management vault cncf meetupSecrets management vault cncf meetup
Secrets management vault cncf meetup
 
Role based access control - RBAC - Kubernetes
Role based access control - RBAC - KubernetesRole based access control - RBAC - Kubernetes
Role based access control - RBAC - Kubernetes
 

Semelhante a Deploying Microservices - Makefiles, K8S Config Templates, Git Submodules, Helm, Git-crypt and Jenkins

Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
Akshaya Mahapatra
 

Semelhante a Deploying Microservices - Makefiles, K8S Config Templates, Git Submodules, Helm, Git-crypt and Jenkins (20)

Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECS
 
DevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux ContainersDevOps Workflow: A Tutorial on Linux Containers
DevOps Workflow: A Tutorial on Linux Containers
 
betterCode Workshop: Effizientes DevOps-Tooling mit Go
betterCode Workshop:  Effizientes DevOps-Tooling mit GobetterCode Workshop:  Effizientes DevOps-Tooling mit Go
betterCode Workshop: Effizientes DevOps-Tooling mit Go
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Kubernetes: training micro-dragons for a serious battle
Kubernetes: training micro-dragons for a serious battleKubernetes: training micro-dragons for a serious battle
Kubernetes: training micro-dragons for a serious battle
 
Developing with-devstack
Developing with-devstackDeveloping with-devstack
Developing with-devstack
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker Containers
 
Lightning talk: 12 Factor Containers
Lightning talk: 12 Factor ContainersLightning talk: 12 Factor Containers
Lightning talk: 12 Factor Containers
 
What's New in Docker 1.12?
What's New in Docker 1.12?What's New in Docker 1.12?
What's New in Docker 1.12?
 
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub HajekJDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
JDO 2019: Container orchestration with Docker Swarm - Jakub Hajek
 
Docking with Docker
Docking with DockerDocking with Docker
Docking with Docker
 
Continuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And DockerContinuous Delivery With Selenium Grid And Docker
Continuous Delivery With Selenium Grid And Docker
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Docker 進階實務班
Docker 進階實務班Docker 進階實務班
Docker 進階實務班
 
Docker Security workshop slides
Docker Security workshop slidesDocker Security workshop slides
Docker Security workshop slides
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

Deploying Microservices - Makefiles, K8S Config Templates, Git Submodules, Helm, Git-crypt and Jenkins

  • 1. Deploying Microservices - Makefiles, K8S Config Templates, Git Submodules, Helm, Git-crypt and Jenkins Satish Devarapalli
  • 2. $whoami Satish Devarapalli Cloud Platform Architect @ Wolters Kluwer @devasat
  • 3. Agenda ● Project Intro ● Makefiles ● Why Helm ○ K8S Config Templates ○ Version Management ○ Property Lookup Hierarchy ○ Release = Code + Config + DB Change ● Passwords Management ● Spinnaker vs. Jenkins
  • 5. ● Simplify developer onboarding ● Consistent commands usage on workstations and Jenkins ● Build and deploy Steps ○ Build container ■ Build ■ Tag ■ Publish ○ Deploy ■ Environment parameters ■ K8s config templates Makefiles Naming Convention project-prefix/service:version-githash Example: wk/auth:1.0-a8765 make clean build deploy make env=qa deploy
  • 9. Agenda ● Project Intro ● Makefiles ● Why Helm ○ K8S Config Templates ○ Version Dependency Management ○ Property Lookup Hierarchy ○ Release = Code + Config + DB ● Passwords Management ● Spinnaker vs. Jenkins
  • 10. K8S Config Templates ● Configuration files are similar ○ Deployment ○ Service ○ Ingress ○ Horizontal Pod Autoscaler ○ Config Map ● Helm Template Engine ○ Go Templates ○ Built-in objects ○ Dry run option ○ NOTES.txt
  • 11. Version Management Helm Chart Dependencies Platform 1.0 auth 1.0 𝞵 svc 1.0 𝞵 svc 1.0 ... Platform 1.1 auth 1.0 𝞵 svc 1.0 𝞵 svc 1.1 ... Platform 1.2 auth 1.0 𝞵 svc 1.2 𝞵 svc 1.1 ... Platform 1.3 auth 1.0 𝞵 svc 1.2 𝞵 svc 1.1 ...
  • 12. Property Lookup Hierarchy Identical in all environments DEV QA PROD PROJECT Identical in all environments DEV QA PROD 𝞵 svc Identical in all environments DEV QA PROD replicaCount=1 replicaCount=4 helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db- server=cmdline-override.wk.com 1 2 3 4 1 2 Common across all microservices and in all environments Common across all microservices in an environment 3 4 Common for a specific microservice in all environments Specific value for a specific microservice in a specific environment replicaCount=2
  • 13. Property Lookup Hierarchy Identical in all environments DEV QA PROD PROJECT Identical in all environments DEV QA PROD 𝞵 svc Identical in all environments DEV QA PROD replicaCount=1 replicaCount=4 helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db- server=cmdline-override.wk.com 1 2 3 4 replicaCount=2 1
  • 14. Property Lookup Hierarchy Identical in all environments DEV QA PROD PROJECT Identical in all environments DEV QA PROD 𝞵 svc Identical in all environments DEV QA PROD replicaCount=1 replicaCount=4 helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db- server=cmdline-override.wk.com 1 2 3 4 replicaCount=2 2
  • 15. Property Lookup Hierarchy Identical in all environments DEV QA PROD PROJECT Identical in all environments DEV QA PROD 𝞵 svc Identical in all environments DEV QA PROD replicaCount=1 replicaCount=4 helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db- server=cmdline-override.wk.com 1 2 3 4 replicaCount=2 3
  • 16. Property Lookup Hierarchy Identical in all environments DEV QA PROD PROJECT Identical in all environments DEV QA PROD 𝞵 svc Identical in all environments DEV QA PROD replicaCount=1 replicaCount=4 helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml --set db- server=cmdline-override.wk.com 1 2 3 4 replicaCount=2 4
  • 17. ● Option 1: package environment values in to chart and extract them at install time ○ helm install . -f values.yaml,dev/values.yaml,svc/values.yaml,svc/dev/values.yaml ● Option 2: create a chart for each environment ○ Project1-0.1.0-dev.tgz, project1-0.1.0-qa.tgz, project1-0.1.0-prod.tgz ● Option 3: package environment values as sub-charts Property Lookup Hierarchy https://github.com/kubernetes/helm/issues/2620
  • 18. Release = Code + Config + DB Helm Chart Chart auth-1.0 = auth:1.0 + config 1.0 Chart auth-1.1 = auth:1.1 + config 1.0 Chart auth-1.2 = auth:1.1 + config 1.2 ? + 0-db.sql + 0-db.sql + 1-db.sql Reference: Containerizing SQL DB changes with Flyway, Kubernetes, and OpenShift https://developers.redhat.com/blog/2018/01/10/flyway-containerized-db-changes/
  • 19. Passwords Management ● Kubernetes Secrets ● Separate Git repository ● Git-crypt ○ GPG keys ○ Production keys accessible only to operations team ● Future ○ Hashicorp Vault Helm Plugin
  • 20. Spinnaker vs. Jenkins ● Spinnaker ○ Kubernetes V2 plugin - promising ■ Helm support not GA yet ○ Administration? ○ Cost? ● Jenkins ○ Canary deployment ○ Blue/green