SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Plus 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
 

Plus 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...
 

Dernier

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
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
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
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 educationjfdjdjcjdnsjd
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Dernier (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
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
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

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