SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Opening the Floodgates for GitOps
in Spinnaker
Dawid Trzebiatowski | Wojciech Urbański
2
About us
Dawid is a Senior DevOps Engineer at Codilime, evolved
from traditional ops with a background in development.
He enjoys resolving problems and delivering value in
projects. A great fan of CI/CD, he’s currently working on
cloud-based monitoring solutions.
Wojciech is a Senior DevOps Engineer. He has been
working with CI/CD Systems for his entire career and is
also a GCP-Certified Architect and Trainer. He’s also
passionate about automation and making even
complicated processes simple. After-hours, he
programs for fun.
Dawid Trzebiatowski Wojciech Urbański
3
What is Spinnaker and why should we care?
● Open Source
● Continuous Delivery tool
● Created by Netflix and Google
● Designed for application deployments
● Can work with various types of infrastructure:
○ Kubernetes clusters
○ Virtual machines
■ GCP
■ AWS
■ Alibaba cloud
■ etc.
○ Bare metal deployments
● Perfect example of a cloud-native application
4
Spinnaker - Pipeline view
5
Spinnaker - Pipelines/Application view
6
Spinnaker - Infrastructure view
7
Our use case
● Big application consisting of multiple services ( more
than 20 services )
● Number of environments ( multiple dev env, test,
stage, prod )
● Automatic and manual deployments
● Manual deployment should be possible for
○ DevOps team
○ Dev team
○ Management
● Configuration changes tracking
● Simple configuration management
8
Configuration as code
$ jq -c . wordpress.json
{"appConfig":{},"application":"nginx","expectedArtifacts":[],"id":"40154d1a
-26c8-430d-8948-e94f62ce10b3","index":2,"keepWaitingPipelines":false,"lastM
odifiedBy":"admin","limitConcurrent":true,"name":"deploy
wordpress","spelEvaluator":"v4","stages":[{"account":"spinnaker","cloudProv
ider":"kubernetes","manifests":[{"apiVersion":"v1","kind":"Service","metada
ta":{"labels":{"app":"wordpress"},"name":"wordpress-mysql","namespace":"def
ault"},"spec":{"clusterIP":"None","ports":[{"port":3306}],"selector":{"app"
:"wordpress","tier":"mysql"}}},{"apiVersion":"v1","kind":"PersistentVolumeC
laim","metadata":{"labels":{"app":"wordpress"},"name":"mysql-pv-claim","nam
espace":"default"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"re
quests":{"storage":"5Gi"}}}},{"apiVersion":"apps/v1","kind":"Deployment","m
etadata":{"labels":{"app":"wordpress"},"name":"wordpress-mysql","namespace"
:"default"},"spec":{"selector":{"matchLabels":{"app":"wordpress","tier":"my
sql"}},"strategy":{"type":"Recreate"},"template":{"metadata":{"labels":{"ap
p":"wordpress","tier":"mysql"}},"spec":{"containers":[{"env":[{"name":"MYSQ
L_ROOT_PASSWORD","valueFrom":{"secretKeyRef":{"key":"password","name":"mysq
l-pass"}}}],"image":"mysql:5.6","name":"mysql","ports":[{"containerPort":33
06,"name":"mysql"}],"volumeMounts":[{"mountPath":"/var/lib/mysql","name":"m
ysql-persistent-storage"}]}],"volumes":[{"name":"mysql-persistent-storage",
"persistentVolumeClaim":{"claimName":"mysql-pv-claim"}}]}}}}],"moniker":{"a
pp":"wordpress"},"name":"Deploy
MySQL","refId":"1","requisiteStageRefIds":["2"],"skipExpressionEvaluation":
false,"source":"text","trafficManagement":{"enabled":false,"options":{"enab
leTraffic":false,"services":[]}},"type":"deployManifest"},{"account":"spinn
aker","cloudProvider":"kubernetes","expectedArtifacts":[],"manifests":[{"ap
iVersion":"v1","data":{"password":"cGFzc3dvcmQ="},"kind":"Secret","metadata
":{"name":"mysql-pass","namespace":"default"},"type":"Opaque"}],"moniker":{
"app":"wordpress"},"name":"Create
secrets","namespaceOverride":"","refId":"2","requisiteStageRefIds":[],"skip
ExpressionEvaluation":false,"source":"text","trafficManagement":{"enabled":
false,"options":{"enableTraffic":false,"services":[]}},"type":"deployManife
st"},{"account":"spinnaker","cloudProvider":"kubernetes","manifests":[{"api
Version":"v1","kind":"Service","metadata":{"labels":{"app":"wordpress"},"na
me":"wordpress","namespace":"default"},"spec":{"ports":[{"port":80}],"selec
tor":{"app":"wordpress","tier":"frontend"},"type":"LoadBalancer"}},{"apiVer
sion":"v1","kind":"PersistentVolumeClaim","metadata":{"labels":{"app":"word
press"},"name":"wp-pv-claim","namespace":"default"},"spec":{"accessModes":[
"ReadWriteOnce"],"resources":{"requests":{"storage":"5Gi"}}}},{"apiVersion"
:"apps/v1","kind":"Deployment","metadata":{"labels":{"app":"wordpress"},"na
m...
● Managing similar environments requires some
sort of automation
● Spin - CLI tool to work with Spinnaker API
● Spinnaker API consumes JSON files
● JSON files can be templated using JSONNET
spinnaker/sponnet
spinnaker/spin
We can’t be the first ones with this problem, right?
Off-the-shelf solutions
10
Armory Dinghy
● Allows synchronization with GitHub in both
directions
● Works inside Spinnaker cluster
● Open Source in theory
● Requires custom Spinnaker distribution delivered
by Armory.io
● Requires license
Placeholder image
11
Kapitan
● https://kapitan.dev
● Tool that can be used to generate code for other
applications, e.g. terraform or Kubernetes
● Can also be used to manage Spinnaker JSON
definitions!
● Supports JSONNET
● Manages only configuration files, not apply
commands
12
Managed Delivery
● Uses keel to manage state of infrastructure
● Designed for infrastructure in Cloud
● Is able to spawn testing infrastructure inside
pipeline
● Works as an “infrastructure controller” - receives
a desired state and tries to create it
○ (like Kubernetes does for containers!)
13
Our solution - Floodgate
● Written in go
● Available on GitHub: github.com/codilime/floodgate
● Introducing CI for Spinnaker Pipelines
● ( Currently ) one way sync
● Works with a multiple input files format:
○ YAML
○ JSON
○ JSONNET
● Renders Spinnaker-compliant JSON files
● Manages the configuration on Spinnaker instance
It’s DEMO time!
15
Possible CI workflow
16
Possible CI workflow
17
Next steps
● Finishing the implementation of more advanced
usage patterns
● Extending user base through Spinnaker Community
● Making floodgate work within the cluster (as a
microservice)
18
Key learnings
● Spinnaker is not as complicated as you might think.
● You are (most likely) not the only person having
problem X.
● Extending Open-Source projects is fun!
● There are already many elements of the “as-Code”
approach in Spinnaker
● Community members ask for a reference
implementation of “Pipelines as Code” every week
https://xkcd.com/927/
Thank you
Want to join our team?
Check open positions at codilime.com/careers

Más contenido relacionado

La actualidad más candente

Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKEOpsta
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDA GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDJulian Mazzitelli
 
GitBucket: Git Centric Software Development Platform by Scala
GitBucket:  Git Centric Software Development Platform by ScalaGitBucket:  Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scalatakezoe
 
Security: The Value of SBOMs
Security: The Value of SBOMsSecurity: The Value of SBOMs
Security: The Value of SBOMsWeaveworks
 
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 ArgoCDSunnyvale
 
Containerd + buildkit breakout
Containerd + buildkit breakoutContainerd + buildkit breakout
Containerd + buildkit breakoutDocker, Inc.
 
Real World CI/CD with Kubernetes
Real World CI/CD with KubernetesReal World CI/CD with Kubernetes
Real World CI/CD with KubernetesOpsta
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionPhil Estes
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes waysparkfabrik
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitWeaveworks
 
16. Cncf meetup-docker
16. Cncf meetup-docker16. Cncf meetup-docker
16. Cncf meetup-dockerJuraj Hantak
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
Extended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use casesExtended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use casesPhil Estes
 
Revisit Dependency Injection in scala
Revisit Dependency Injection in scalaRevisit Dependency Injection in scala
Revisit Dependency Injection in scalatakezoe
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessDaniel Oh
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetessparkfabrik
 
GPU enablement for data science on OpenShift | DevNation Tech Talk
GPU enablement for data science on OpenShift | DevNation Tech TalkGPU enablement for data science on OpenShift | DevNation Tech Talk
GPU enablement for data science on OpenShift | DevNation Tech TalkRed Hat Developers
 

La actualidad más candente (20)

Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKE
 
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CDA GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
A GitOps Kubernetes Native CICD Solution with Argo Events, Workflows, and CD
 
GitBucket: Git Centric Software Development Platform by Scala
GitBucket:  Git Centric Software Development Platform by ScalaGitBucket:  Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scala
 
Security: The Value of SBOMs
Security: The Value of SBOMsSecurity: The Value of SBOMs
Security: The Value of SBOMs
 
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
 
Containerd + buildkit breakout
Containerd + buildkit breakoutContainerd + buildkit breakout
Containerd + buildkit breakout
 
Real World CI/CD with Kubernetes
Real World CI/CD with KubernetesReal World CI/CD with Kubernetes
Real World CI/CD with Kubernetes
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine Evolution
 
Meetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOpsMeetup 23 - 03 - Application Delivery on K8S with GitOps
Meetup 23 - 03 - Application Delivery on K8S with GitOps
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
The Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps ToolkitThe Power of GitOps with Flux & GitOps Toolkit
The Power of GitOps with Flux & GitOps Toolkit
 
16. Cncf meetup-docker
16. Cncf meetup-docker16. Cncf meetup-docker
16. Cncf meetup-docker
 
Argocd up and running
Argocd up and runningArgocd up and running
Argocd up and running
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Extended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use casesExtended and embedding: containerd update & project use cases
Extended and embedding: containerd update & project use cases
 
Revisit Dependency Injection in scala
Revisit Dependency Injection in scalaRevisit Dependency Injection in scala
Revisit Dependency Injection in scala
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on Serverless
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
GPU enablement for data science on OpenShift | DevNation Tech Talk
GPU enablement for data science on OpenShift | DevNation Tech TalkGPU enablement for data science on OpenShift | DevNation Tech Talk
GPU enablement for data science on OpenShift | DevNation Tech Talk
 

Similar a CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Floodgates for GitOps in Spinnaker

Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceEnhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceNico Meisenzahl
 
[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetesGlobalLogic Ukraine
 
Pydata 2020 containers meetup
Pydata  2020 containers meetup Pydata  2020 containers meetup
Pydata 2020 containers meetup Walid Shaari
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Daniel Oh
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdfLibbySchulze
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdfLibbySchulze
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...DynamicInfraDays
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps WorkshopWeaveworks
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...Haggai Philip Zagury
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development PatternsBilgin Ibryam
 
CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...
CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...
CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...LibbySchulze1
 
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...Nico Meisenzahl
 
GitOps and Its tools.pptx
GitOps and Its tools.pptxGitOps and Its tools.pptx
GitOps and Its tools.pptxShivlalSharma5
 
GitOps and Its tools.pptx
GitOps and Its tools.pptxGitOps and Its tools.pptx
GitOps and Its tools.pptxShivlalSharma5
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsAmbassador Labs
 

Similar a CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Floodgates for GitOps in Spinnaker (20)

Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open SourceEnhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
 
[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes
 
Pydata 2020 containers meetup
Pydata  2020 containers meetup Pydata  2020 containers meetup
Pydata 2020 containers meetup
 
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdf
 
Securing Windows workloads.pdf
Securing Windows workloads.pdfSecuring Windows workloads.pdf
Securing Windows workloads.pdf
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
ContainerDays NYC 2015: "Easing Your Way Into Docker: Lessons From a Journey ...
 
Container Days
Container DaysContainer Days
Container Days
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
 
JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
 
Run automated tests in Docker
Run automated tests in DockerRun automated tests in Docker
Run automated tests in Docker
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development Patterns
 
CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...
CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...
CNCF Live Webinar 2023, 12 Apr - Exploring Kubernetes Windows HostProcess Ins...
 
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
Gitlab Commit: How Containerized GitLab CI Pipelines Can Help You Streamline ...
 
GitOps and Its tools.pptx
GitOps and Its tools.pptxGitOps and Its tools.pptx
GitOps and Its tools.pptx
 
GitOps and Its tools.pptx
GitOps and Its tools.pptxGitOps and Its tools.pptx
GitOps and Its tools.pptx
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 

Más de CodiLime

Rapid help for current networking challenges
Rapid help for current networking challengesRapid help for current networking challenges
Rapid help for current networking challengesCodiLime
 
CodiLime Tech Talk - Grzegorz Rozdzialik: What the java script
CodiLime Tech Talk - Grzegorz Rozdzialik: What the java scriptCodiLime Tech Talk - Grzegorz Rozdzialik: What the java script
CodiLime Tech Talk - Grzegorz Rozdzialik: What the java scriptCodiLime
 
CodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivated
CodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivatedCodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivated
CodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivatedCodiLime
 
CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...
CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...
CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...CodiLime
 
CodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud NativeCodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud NativeCodiLime
 
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and InfluxCodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and InfluxCodiLime
 
CodiLime Tech Talk - Michał Sochoń: Configuration management hell
CodiLime Tech Talk - Michał Sochoń: Configuration management hellCodiLime Tech Talk - Michał Sochoń: Configuration management hell
CodiLime Tech Talk - Michał Sochoń: Configuration management hellCodiLime
 
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introductionCodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introductionCodiLime
 
Tech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming languageTech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming languageCodiLime
 
CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...
CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...
CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...CodiLime
 
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...CodiLime
 
CodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp Vault
CodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp VaultCodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp Vault
CodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp VaultCodiLime
 
CodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon't
CodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon'tCodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon't
CodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon'tCodiLime
 
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & AnsibleCodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & AnsibleCodiLime
 
CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...
CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...
CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...CodiLime
 
CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...
CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...
CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...CodiLime
 

Más de CodiLime (16)

Rapid help for current networking challenges
Rapid help for current networking challengesRapid help for current networking challenges
Rapid help for current networking challenges
 
CodiLime Tech Talk - Grzegorz Rozdzialik: What the java script
CodiLime Tech Talk - Grzegorz Rozdzialik: What the java scriptCodiLime Tech Talk - Grzegorz Rozdzialik: What the java script
CodiLime Tech Talk - Grzegorz Rozdzialik: What the java script
 
CodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivated
CodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivatedCodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivated
CodiLime Tech Talk - Mateusz Psujek: Keep calm and stay motivated
 
CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...
CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...
CodiLime Tech Talk - Katarzyna Ziomek-Zdanowicz: RxJS main concepts and real ...
 
CodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud NativeCodiLime Tech Talk - Wojciech Urbański: Cloud Native
CodiLime Tech Talk - Wojciech Urbański: Cloud Native
 
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and InfluxCodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
CodiLime Tech Talk - Łukasz Maksymczuk: Monitoring: Prometheus and Influx
 
CodiLime Tech Talk - Michał Sochoń: Configuration management hell
CodiLime Tech Talk - Michał Sochoń: Configuration management hellCodiLime Tech Talk - Michał Sochoń: Configuration management hell
CodiLime Tech Talk - Michał Sochoń: Configuration management hell
 
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introductionCodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
CodiLime Tech Talk - Adam Kułagowski: IPv6 - introduction
 
Tech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming languageTech Talk - Konrad Gawda : P4 programming language
Tech Talk - Konrad Gawda : P4 programming language
 
CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...
CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...
CodiLime Tech Talk - Michał Pawluk: Our production deployment in AWS (HashiCo...
 
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
 
CodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp Vault
CodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp VaultCodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp Vault
CodiLime Tech Talk - Michał Pawluk: Our deployment of HashiCorp Vault
 
CodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon't
CodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon'tCodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon't
CodiLime Tech Talk - Jan Kanty Milczek: Basic Recommender Systems – SVDon't
 
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & AnsibleCodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
CodiLime Tech Talk - Michał Sochoń: Sphinx, reST & Ansible
 
CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...
CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...
CodiLime Tech Talk - Maciej Sawicki: Streamline application deployments with ...
 
CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...
CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...
CodiLime Tech Talk - Jarek Łukow: You need a cloud to test a cloud: using Ope...
 

Último

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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 Scriptwesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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)wesley chun
 
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 MenDelhi Call girls
 
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 MenDelhi Call girls
 
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...Neo4j
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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 AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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 slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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...Martijn de Jong
 
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...Drew Madelung
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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 WorkerThousandEyes
 

Último (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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 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
 
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
 
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...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
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...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 

CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Floodgates for GitOps in Spinnaker

  • 1. Opening the Floodgates for GitOps in Spinnaker Dawid Trzebiatowski | Wojciech Urbański
  • 2. 2 About us Dawid is a Senior DevOps Engineer at Codilime, evolved from traditional ops with a background in development. He enjoys resolving problems and delivering value in projects. A great fan of CI/CD, he’s currently working on cloud-based monitoring solutions. Wojciech is a Senior DevOps Engineer. He has been working with CI/CD Systems for his entire career and is also a GCP-Certified Architect and Trainer. He’s also passionate about automation and making even complicated processes simple. After-hours, he programs for fun. Dawid Trzebiatowski Wojciech Urbański
  • 3. 3 What is Spinnaker and why should we care? ● Open Source ● Continuous Delivery tool ● Created by Netflix and Google ● Designed for application deployments ● Can work with various types of infrastructure: ○ Kubernetes clusters ○ Virtual machines ■ GCP ■ AWS ■ Alibaba cloud ■ etc. ○ Bare metal deployments ● Perfect example of a cloud-native application
  • 7. 7 Our use case ● Big application consisting of multiple services ( more than 20 services ) ● Number of environments ( multiple dev env, test, stage, prod ) ● Automatic and manual deployments ● Manual deployment should be possible for ○ DevOps team ○ Dev team ○ Management ● Configuration changes tracking ● Simple configuration management
  • 8. 8 Configuration as code $ jq -c . wordpress.json {"appConfig":{},"application":"nginx","expectedArtifacts":[],"id":"40154d1a -26c8-430d-8948-e94f62ce10b3","index":2,"keepWaitingPipelines":false,"lastM odifiedBy":"admin","limitConcurrent":true,"name":"deploy wordpress","spelEvaluator":"v4","stages":[{"account":"spinnaker","cloudProv ider":"kubernetes","manifests":[{"apiVersion":"v1","kind":"Service","metada ta":{"labels":{"app":"wordpress"},"name":"wordpress-mysql","namespace":"def ault"},"spec":{"clusterIP":"None","ports":[{"port":3306}],"selector":{"app" :"wordpress","tier":"mysql"}}},{"apiVersion":"v1","kind":"PersistentVolumeC laim","metadata":{"labels":{"app":"wordpress"},"name":"mysql-pv-claim","nam espace":"default"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"re quests":{"storage":"5Gi"}}}},{"apiVersion":"apps/v1","kind":"Deployment","m etadata":{"labels":{"app":"wordpress"},"name":"wordpress-mysql","namespace" :"default"},"spec":{"selector":{"matchLabels":{"app":"wordpress","tier":"my sql"}},"strategy":{"type":"Recreate"},"template":{"metadata":{"labels":{"ap p":"wordpress","tier":"mysql"}},"spec":{"containers":[{"env":[{"name":"MYSQ L_ROOT_PASSWORD","valueFrom":{"secretKeyRef":{"key":"password","name":"mysq l-pass"}}}],"image":"mysql:5.6","name":"mysql","ports":[{"containerPort":33 06,"name":"mysql"}],"volumeMounts":[{"mountPath":"/var/lib/mysql","name":"m ysql-persistent-storage"}]}],"volumes":[{"name":"mysql-persistent-storage", "persistentVolumeClaim":{"claimName":"mysql-pv-claim"}}]}}}}],"moniker":{"a pp":"wordpress"},"name":"Deploy MySQL","refId":"1","requisiteStageRefIds":["2"],"skipExpressionEvaluation": false,"source":"text","trafficManagement":{"enabled":false,"options":{"enab leTraffic":false,"services":[]}},"type":"deployManifest"},{"account":"spinn aker","cloudProvider":"kubernetes","expectedArtifacts":[],"manifests":[{"ap iVersion":"v1","data":{"password":"cGFzc3dvcmQ="},"kind":"Secret","metadata ":{"name":"mysql-pass","namespace":"default"},"type":"Opaque"}],"moniker":{ "app":"wordpress"},"name":"Create secrets","namespaceOverride":"","refId":"2","requisiteStageRefIds":[],"skip ExpressionEvaluation":false,"source":"text","trafficManagement":{"enabled": false,"options":{"enableTraffic":false,"services":[]}},"type":"deployManife st"},{"account":"spinnaker","cloudProvider":"kubernetes","manifests":[{"api Version":"v1","kind":"Service","metadata":{"labels":{"app":"wordpress"},"na me":"wordpress","namespace":"default"},"spec":{"ports":[{"port":80}],"selec tor":{"app":"wordpress","tier":"frontend"},"type":"LoadBalancer"}},{"apiVer sion":"v1","kind":"PersistentVolumeClaim","metadata":{"labels":{"app":"word press"},"name":"wp-pv-claim","namespace":"default"},"spec":{"accessModes":[ "ReadWriteOnce"],"resources":{"requests":{"storage":"5Gi"}}}},{"apiVersion" :"apps/v1","kind":"Deployment","metadata":{"labels":{"app":"wordpress"},"na m... ● Managing similar environments requires some sort of automation ● Spin - CLI tool to work with Spinnaker API ● Spinnaker API consumes JSON files ● JSON files can be templated using JSONNET spinnaker/sponnet spinnaker/spin
  • 9. We can’t be the first ones with this problem, right? Off-the-shelf solutions
  • 10. 10 Armory Dinghy ● Allows synchronization with GitHub in both directions ● Works inside Spinnaker cluster ● Open Source in theory ● Requires custom Spinnaker distribution delivered by Armory.io ● Requires license Placeholder image
  • 11. 11 Kapitan ● https://kapitan.dev ● Tool that can be used to generate code for other applications, e.g. terraform or Kubernetes ● Can also be used to manage Spinnaker JSON definitions! ● Supports JSONNET ● Manages only configuration files, not apply commands
  • 12. 12 Managed Delivery ● Uses keel to manage state of infrastructure ● Designed for infrastructure in Cloud ● Is able to spawn testing infrastructure inside pipeline ● Works as an “infrastructure controller” - receives a desired state and tries to create it ○ (like Kubernetes does for containers!)
  • 13. 13 Our solution - Floodgate ● Written in go ● Available on GitHub: github.com/codilime/floodgate ● Introducing CI for Spinnaker Pipelines ● ( Currently ) one way sync ● Works with a multiple input files format: ○ YAML ○ JSON ○ JSONNET ● Renders Spinnaker-compliant JSON files ● Manages the configuration on Spinnaker instance
  • 17. 17 Next steps ● Finishing the implementation of more advanced usage patterns ● Extending user base through Spinnaker Community ● Making floodgate work within the cluster (as a microservice)
  • 18. 18 Key learnings ● Spinnaker is not as complicated as you might think. ● You are (most likely) not the only person having problem X. ● Extending Open-Source projects is fun! ● There are already many elements of the “as-Code” approach in Spinnaker ● Community members ask for a reference implementation of “Pipelines as Code” every week https://xkcd.com/927/
  • 19. Thank you Want to join our team? Check open positions at codilime.com/careers