SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
GitOps
& the deployment
Branching Models
© SOKUBE 2021
Yann Albou #CTO
https://www.linkedin.com/in/yann-albou/
@YannAlbou
19
Company started in
July
2019
SoKube is a consulting company 100% dedicated
to the container & Kubernetes orchestration
ecosystem and the entire SDLC, including a
comprehensive approach with Agile, CI-CD,
DevOps / DevSecOps, SRE, GitOps practices.
Kubernetes and DevOps have reached a level of maturity that
any company can leverage as their next enterprise platform.
In the 2020s, Kubernetes will become the common ground
for multi-cloud strategies, alongside with PaaS services, just
as Virtualization took over Physical machines back in 2000s.
Top-Management adoption, Cultural Shift and Training
will be key catalysts in the evolution of companies
that were born before the Cloud-Native era.
Agile Expertise
© SOKUBE 2020
GitOps
#1. Declarative
The entire system is described declaratively
#3. Kubernetes Operator
Approved changes to the desired state are
automatically applied to the system
#4. Continuous Observability
Software agents ensure correctness and alert on
divergence
Sync & Alert
#2. Git as Single Source of Truth
Declarative changes let you think of changes as
transactions
GitOps ?
Continuous Delivery pipeline
Continuous Integration pipeline
Source: https://www.gitops.tech
Pull-based deployments
GitOps Downsides
• Not a one-size-fits-all solution
• Splitting CI and CD is more complicated
• Edge case with Dynamic Resources
• Rollback practices need to be defined
• Non technical Observability & auditing
• Continuous Deployment not natural
• Secret Management is your problem
GitOps doesn’t provide neither a frame to represent the different environments
nor a solution to propagate changes from one stage to the next one.
© SOKUBE 2021
Git Repo
Development side
Source code
DockerFile
Config files for local dev
Development
Docker image
Separation git repo: Applications / Deployment
• 2 different lifecycles
• Security aspects
• Pipelines are different
• Branching git models are different
• Multiple applications
• Mixing Git logs
Values.yaml
backend:
container:
registry: my-dev-registry
image: my-back-app
tag: latest
replicas: 1
resources:
requests:
cpu: 1500m
memory: 256Mi
limits:
cpu: 2000m
memory: 512Mi
probes: …
netpol: …
config:
db:
type: in-memory
username: admin
password: pwd
business:
myapp: val1
chart.yaml
name: my-app
...
dependencies:
- name: springboot
alias: backend
version: 2.0.0
repository: ...
...
The “Mille-feuille” Configuration
Infrastructure
Monitoring
Database
…
Security
Dev
Deployment Repo
Target env
Target environment on which you want to deploy your applications
Int Test QA UAT Pre-Prod Prod
© SOKUBE 2021
Branching Models
1 env per Git Repo
1 env per Git Repository
Dev / Sec / Ops
INT QA PROD
CD
YAML
Helm
Kustomize
PR / Patch
PR / Patch
1 env per branch
Dev / Sec / Ops
INT QA PROD
CD
Pull
Request
Pull
Request
YAML
Helm
Kustomize
1 env per branch
1 env per branch
• “Common” approach
• Simple filesystem / single set of resources
• RBAC per branch
• Pull Request process more complicated
• Flow of propagation must be respect (possible ?)
• Hot-fix ? → Merge hell
• Promotion of structural new element is harder: keys consistency
Values.yaml
backend:
container:
registry: my-dev-registry
image: my-back-app
tag: latest
replicas: 1
resources:
requests:
cpu: 1500m
memory: 256Mi
limits:
cpu: 2000m
memory: 512Mi
probes: …
netpol: …
config:
db:
type: in-memory
username: admin
password: pwd
business:
myapp: val1
mynewkey: newVal
chart.yaml
name: my-app
...
dependencies:
- name: springboot
alias: backend
version: 2.0.0
repository: ...
...
Values.yaml
backend:
container:
registry: my-qa-registry
image: my-back-app
tag: 1.2.1-9eabf5b
replicas: 3
resources:
requests:
cpu: 1000m
memory: 256Mi
limits:
cpu: 1000m
memory: 256Mi
probes: …
netpol: …
config:
db:
type: postgresql
username: user123
password: pwd123
business:
myapp: val2
chart.yaml
name: my-app
...
dependencies:
- name: springboot
alias: backend
version: 1.5.3
repository: ...
...
Values.yaml
backend:
container:
registry: my-prod-registry
image: my-back-app
tag: 1.1.12-5acdb2f
replicas: 6
resources:
requests:
cpu: 1500m
memory: 512Mi
limits:
cpu: 1500m
memory: 512Mi
probes: …
netpol: …
config:
db:
type: postgresql
username: user456
password: pwd456
business:
myapp: val3
chart.yaml
name: my-app
...
dependencies:
- name: springboot
alias: backend
version: 1.5.2
repository: ...
...
Env Configuration
Values.yaml
backend:
container:
registry: my-dev-registry
image: my-back-app
tag: latest
replicas: 1
resources:
requests:
cpu: 1500m
memory: 256Mi
limits:
cpu: 2000m
memory: 512Mi
probes: …
netpol: …
config:
db:
type: in-memory
username: admin
password: pwd
business:
myapp: val1
mynewkey: newVal
chart.yaml
name: my-app
...
dependencies:
- name: springboot
alias: backend
version: 2.0.0
repository: ...
...
Values.yaml
backend:
container:
registry: my-qa-registry
image: my-back-app
tag: 1.2.1-9eabf5b
replicas: 3
resources:
requests:
cpu: 1000m
memory: 256Mi
limits:
cpu: 1000m
memory: 256Mi
probes: …
netpol: …
config:
db:
type: postgresql
username: user123
password: pwd123
business:
myapp: val2
chart.yaml
name: my-app
...
dependencies:
- name: springboot
alias: backend
version: 1.5.3
repository: ...
...
Values.yaml
backend:
container:
registry: my-prod-registry
image: my-back-app
tag: 1.1.12-5acdb2f
replicas: 6
resources:
requests:
cpu: 1500m
memory: 512Mi
limits:
cpu: 1500m
memory: 512Mi
probes: …
netpol: …
config:
db:
type: postgresql
username: user456
password: pwd456
business:
myapp: val3
chart.yaml
name: my-app
...
dependencies:
- name: springboot
alias: backend
version: 1.5.2
repository: ...
...
Env Configuration
1 env per dir / file
1 env per directory / file
Dev / Sec / Ops
INT QA PROD
CD
YAML
Helm
Kustomize
1 env per directory / file
• Env update/add/remove
• Pull Request process is simple
• Ability to factorize between environment
• Consistency of key values is a huge advantage
• Ability to switch from one env to another
• No adhesion to an env
• RBAC is not OOTB → CodeOwner
• Warning on common parameters
Git Flows
GitFlow GitHub Flow GitLab Flow
© SOKUBE 2021
Enterprise GitOps
Tools
KAM
Redhat
Enterprise GitOps
• Added value and benefits are important
• Need to be aware of current limitations or bad practices
• Solutions are more and more mature
• Must be adapted to your process without twisting the model
• Give you the opportunity to improve your process
• 1 env per directory/file with gitflow simplifies while allowing to manage
complex scenarios
Thanks to the SoKube Team
© SOKUBE 2021
Yann Albou #CTO
https://www.linkedin.com/in/yann-albou/
@YannAlbou
Sokube is hiring

Contenu connexe

Tendances

Tendances (20)

Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes
 
Container Security
Container SecurityContainer Security
Container Security
 
Container Security
Container SecurityContainer Security
Container Security
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
Docker Security Overview
Docker Security OverviewDocker Security Overview
Docker Security Overview
 
Openshift argo cd_v1_2
Openshift argo cd_v1_2Openshift argo cd_v1_2
Openshift argo cd_v1_2
 
Gitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operationsGitops: a new paradigm for software defined operations
Gitops: a new paradigm for software defined operations
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Kubernetes PPT.pptx
Kubernetes PPT.pptxKubernetes PPT.pptx
Kubernetes PPT.pptx
 
Docker London: Container Security
Docker London: Container SecurityDocker London: Container Security
Docker London: Container Security
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
 
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platformApache Bigtop: a crash course in deploying a Hadoop bigdata management platform
Apache Bigtop: a crash course in deploying a Hadoop bigdata management platform
 
Docker Networking Overview
Docker Networking OverviewDocker Networking Overview
Docker Networking Overview
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Red Hat OpenShift on Bare Metal and Containerized Storage
Red Hat OpenShift on Bare Metal and Containerized StorageRed Hat OpenShift on Bare Metal and Containerized Storage
Red Hat OpenShift on Bare Metal and Containerized Storage
 
Building Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build ServiceBuilding Kubernetes images at scale with Tanzu Build Service
Building Kubernetes images at scale with Tanzu Build Service
 

Similaire à GitOps & the deployment branching models - DevOps D-day Marseille 2021

Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
QAware GmbH
 

Similaire à GitOps & the deployment branching models - DevOps D-day Marseille 2021 (20)

How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
 
Cluster management with Kubernetes
Cluster management with KubernetesCluster management with Kubernetes
Cluster management with Kubernetes
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes Toolbox
 
Exploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in PythonExploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in Python
 
K8s best practices from the field!
K8s best practices from the field!K8s best practices from the field!
K8s best practices from the field!
 
Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...
 
Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3Digital Forensics and Incident Response in The Cloud Part 3
Digital Forensics and Incident Response in The Cloud Part 3
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
What is Kubernetes?
What is Kubernetes?What is Kubernetes?
What is Kubernetes?
 
Kubernetes Overview - Deploy your app with confidence
Kubernetes Overview - Deploy your app with confidenceKubernetes Overview - Deploy your app with confidence
Kubernetes Overview - Deploy your app with confidence
 
Gentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetesGentle introduction to containers and kubernetes
Gentle introduction to containers and kubernetes
 
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
 
使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster 使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
A hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stackA hitchhiker‘s guide to the cloud native stack
A hitchhiker‘s guide to the cloud native stack
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 
Docker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-ITDocker and Cloud - Enables for DevOps - by ACA-IT
Docker and Cloud - Enables for DevOps - by ACA-IT
 
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
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...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 

GitOps & the deployment branching models - DevOps D-day Marseille 2021

  • 1. GitOps & the deployment Branching Models © SOKUBE 2021 Yann Albou #CTO https://www.linkedin.com/in/yann-albou/ @YannAlbou
  • 2. 19 Company started in July 2019 SoKube is a consulting company 100% dedicated to the container & Kubernetes orchestration ecosystem and the entire SDLC, including a comprehensive approach with Agile, CI-CD, DevOps / DevSecOps, SRE, GitOps practices. Kubernetes and DevOps have reached a level of maturity that any company can leverage as their next enterprise platform. In the 2020s, Kubernetes will become the common ground for multi-cloud strategies, alongside with PaaS services, just as Virtualization took over Physical machines back in 2000s. Top-Management adoption, Cultural Shift and Training will be key catalysts in the evolution of companies that were born before the Cloud-Native era. Agile Expertise
  • 4. #1. Declarative The entire system is described declaratively #3. Kubernetes Operator Approved changes to the desired state are automatically applied to the system #4. Continuous Observability Software agents ensure correctness and alert on divergence Sync & Alert #2. Git as Single Source of Truth Declarative changes let you think of changes as transactions GitOps ?
  • 5. Continuous Delivery pipeline Continuous Integration pipeline Source: https://www.gitops.tech Pull-based deployments
  • 6. GitOps Downsides • Not a one-size-fits-all solution • Splitting CI and CD is more complicated • Edge case with Dynamic Resources • Rollback practices need to be defined • Non technical Observability & auditing • Continuous Deployment not natural • Secret Management is your problem GitOps doesn’t provide neither a frame to represent the different environments nor a solution to propagate changes from one stage to the next one.
  • 8. Development side Source code DockerFile Config files for local dev Development Docker image
  • 9. Separation git repo: Applications / Deployment • 2 different lifecycles • Security aspects • Pipelines are different • Branching git models are different • Multiple applications • Mixing Git logs
  • 10. Values.yaml backend: container: registry: my-dev-registry image: my-back-app tag: latest replicas: 1 resources: requests: cpu: 1500m memory: 256Mi limits: cpu: 2000m memory: 512Mi probes: … netpol: … config: db: type: in-memory username: admin password: pwd business: myapp: val1 chart.yaml name: my-app ... dependencies: - name: springboot alias: backend version: 2.0.0 repository: ... ... The “Mille-feuille” Configuration Infrastructure Monitoring Database … Security Dev Deployment Repo
  • 11. Target env Target environment on which you want to deploy your applications Int Test QA UAT Pre-Prod Prod
  • 13. 1 env per Git Repo
  • 14. 1 env per Git Repository Dev / Sec / Ops INT QA PROD CD YAML Helm Kustomize PR / Patch PR / Patch
  • 15. 1 env per branch
  • 16. Dev / Sec / Ops INT QA PROD CD Pull Request Pull Request YAML Helm Kustomize 1 env per branch
  • 17. 1 env per branch • “Common” approach • Simple filesystem / single set of resources • RBAC per branch • Pull Request process more complicated • Flow of propagation must be respect (possible ?) • Hot-fix ? → Merge hell • Promotion of structural new element is harder: keys consistency
  • 18. Values.yaml backend: container: registry: my-dev-registry image: my-back-app tag: latest replicas: 1 resources: requests: cpu: 1500m memory: 256Mi limits: cpu: 2000m memory: 512Mi probes: … netpol: … config: db: type: in-memory username: admin password: pwd business: myapp: val1 mynewkey: newVal chart.yaml name: my-app ... dependencies: - name: springboot alias: backend version: 2.0.0 repository: ... ... Values.yaml backend: container: registry: my-qa-registry image: my-back-app tag: 1.2.1-9eabf5b replicas: 3 resources: requests: cpu: 1000m memory: 256Mi limits: cpu: 1000m memory: 256Mi probes: … netpol: … config: db: type: postgresql username: user123 password: pwd123 business: myapp: val2 chart.yaml name: my-app ... dependencies: - name: springboot alias: backend version: 1.5.3 repository: ... ... Values.yaml backend: container: registry: my-prod-registry image: my-back-app tag: 1.1.12-5acdb2f replicas: 6 resources: requests: cpu: 1500m memory: 512Mi limits: cpu: 1500m memory: 512Mi probes: … netpol: … config: db: type: postgresql username: user456 password: pwd456 business: myapp: val3 chart.yaml name: my-app ... dependencies: - name: springboot alias: backend version: 1.5.2 repository: ... ... Env Configuration
  • 19. Values.yaml backend: container: registry: my-dev-registry image: my-back-app tag: latest replicas: 1 resources: requests: cpu: 1500m memory: 256Mi limits: cpu: 2000m memory: 512Mi probes: … netpol: … config: db: type: in-memory username: admin password: pwd business: myapp: val1 mynewkey: newVal chart.yaml name: my-app ... dependencies: - name: springboot alias: backend version: 2.0.0 repository: ... ... Values.yaml backend: container: registry: my-qa-registry image: my-back-app tag: 1.2.1-9eabf5b replicas: 3 resources: requests: cpu: 1000m memory: 256Mi limits: cpu: 1000m memory: 256Mi probes: … netpol: … config: db: type: postgresql username: user123 password: pwd123 business: myapp: val2 chart.yaml name: my-app ... dependencies: - name: springboot alias: backend version: 1.5.3 repository: ... ... Values.yaml backend: container: registry: my-prod-registry image: my-back-app tag: 1.1.12-5acdb2f replicas: 6 resources: requests: cpu: 1500m memory: 512Mi limits: cpu: 1500m memory: 512Mi probes: … netpol: … config: db: type: postgresql username: user456 password: pwd456 business: myapp: val3 chart.yaml name: my-app ... dependencies: - name: springboot alias: backend version: 1.5.2 repository: ... ... Env Configuration
  • 20. 1 env per dir / file
  • 21. 1 env per directory / file Dev / Sec / Ops INT QA PROD CD YAML Helm Kustomize
  • 22. 1 env per directory / file • Env update/add/remove • Pull Request process is simple • Ability to factorize between environment • Consistency of key values is a huge advantage • Ability to switch from one env to another • No adhesion to an env • RBAC is not OOTB → CodeOwner • Warning on common parameters
  • 23. Git Flows GitFlow GitHub Flow GitLab Flow
  • 26. Enterprise GitOps • Added value and benefits are important • Need to be aware of current limitations or bad practices • Solutions are more and more mature • Must be adapted to your process without twisting the model • Give you the opportunity to improve your process • 1 env per directory/file with gitflow simplifies while allowing to manage complex scenarios
  • 27. Thanks to the SoKube Team © SOKUBE 2021 Yann Albou #CTO https://www.linkedin.com/in/yann-albou/ @YannAlbou Sokube is hiring