SlideShare a Scribd company logo
Copyright © SUSE 2021
Code Factory
1 A V R I L 2 02 2
Benoît Loriot
Brice Dekany
Julien Niedergang
Code Factory Run
Copyright © SUSE 2021
Agenda
1. SUSE / Rancher
2. Intégration Continue
3. Démo
Synchronisation des montres:
Rancher Rodéo n°8 Vendredi 13 Mai 9h30 à 12h00
Copyright © SUSE 2021
Portfolio SUSE
Hybrid
Cloud
Infrastructure
Dev Datacenter Branch
Cloud Edge
Support
&
Services
Catalog
Security
Storage
Governance
The platform for managing all Kubernetes distributions
Datacenter Edge
Block Storage
Linux SLE Desktop / POS
SLE Server
SLESfor SAP Applications
SLESfor HPC
SLE Micro
SLE Extensions
SUSE Manager
SUSE Linux Enterprise
Compliance
Security
Availability
Management
The only adaptable Linux operating system Other Linux
Cloud-native HCI
Security
Copyright © SUSE 2021
Copyright © SUSE 2021
Définition et Architecture
Intégration Continue
Copyright © SUSE 2021
Objectif de l’intégration continue
Suis-je en
mode
aléatoire?
Aussitôt que le
code est poussé…
il est intégré pour
validation
Intégration Continue
Scénario
Hmm… Pas mal
cette modif…
Evaluation
Code
Copyright © SUSE 2021
Glossaire de l’intégration continue
Cycle de vie
applicatif
Installation des
applications et de leur
dépendance.
Cycle de vie des
applications et de leurs
composants.
Helm
Kustomize
Dépôt de code
Outil central pour tous les
développeurs
Gestion collaborative du
code des applications
Github
Gitlab
Intégration Continue
Orchestration
Registre
Stockage et mise à
disposition des images
de conteneurs
Les images contiennent
les exécutables pour les
applications
Harbor
Docker registry
Nexus
Forge
Assemblage de
l’application et
construction d’uneimage
de conteneur
Résultat stocké dans un
registre
Gitlab-CI
Jenkins
Tekton
Copyright © SUSE 2021
Code Factory and Applications
Today's classical customer architecture
Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Production
Code
Forge
Container Image
Compiler
Continuous
Integration
Gitlab
Security Scans
Neuvector
2
4
Image Registry
Container Image
Storage
3
Deployment
Kubernetes
1
Evaluate Code
Rancher Desktop
5
²
Copyright © SUSE 2021 8
SUSE Rancher SLA Coverage & Ready Partners
App Management & CI/CD
Monitoring & Logging
Registry & Image Scanning
Container Security & Secrets
Networking & Service Mesh
Platforms & Orchestration
Persistent Storage
Container Engine
Operating Systems
Infrastructure
SUSE Rancher SLA SUSE Rancher Ready Partners
Authentication & Authorization
GK
E
AK
S
*
*
*
*
* Requires separate subscription
Copyright © SUSE 2021
Copyright © SUSE 2021
Choix d'architecture
Architecture
Copyright © SUSE 2021
Architecture – Code Factory
Services
Repos - Packages
packages for OS
Registry
Harbor
NTP
Repos - Code
Gitlab
Load Balancer
2 VIPs
Shared Storage
Type/version du stockage
DNS
1 x FQDN Mgmt
1 x FQDN (wildcard?)vers workers
Accès
Liste des ouvertures réseau nécessaire
Proxy
Container Network Infrastructure
Calico, Canal…
Hyperviseur
(VMs)
LAN Network
Rancher Server
(Management)
4 vCPU
8GB RAM
1 x 50GB vDisk
1 x vNic
Rancher Mgmt
(VM)
3 x
Code repository
Continuous Integration
2 vCPU
4GB RAM
1 x 100GB vDisk
1 x vNic
Gitlab
(VM)
1 x
Forge
(Image build)
2 vCPU
4GB RAM
1 x 100GB vDisk
1 x vNic
GitlabRunner
(VM)
1 x
Downstream Cluster
(Applications)
8 x vCPUs
16GB RAM
1 x 100GB vDisk
1 x vNic
1 x vNic Storage
K8S Worker
(VM)
3 x
4 x vCPUs
8GB RAM
1 x 50GB vDisk
1 x vNic
K8S Master
(VM)
3 x
(Container)
(Container)
Application 1
(Container)
Application 2
(Container)
Copyright © SUSE 2021
Copyright © SUSE 2021
Démo
Code Assembly Pipeline
Copyright © SUSE 2021
Commit Code Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Application source code:
- Application:
> Web server with Ruby Sinatra
> Ruby based application
- The Base Container Image to be used needs Ruby binaries
- Git repository in a Git Lab server
> Git Lab CE 14.3.1
> Living Code with multiple branches
> Bugs and revisions are stored here
> Gitlab defines the pipeline
Copyright © SUSE 2021
Build Image 1/3 Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Creating a file to describe our container image:
- File "Dockerfile"
- Ruby based image is being used for the app to run successfully
- Create a folder "app" to host the application
- Copying the "Gemfile" from the repo in the image
> Gemfile contains the needed Ruby dependencies for the app
- Install app & dependencies using the "bundle install" command
- Copy the full repository content in the "app" folder
- Define the executable command when the container is started
> Using "bundle exec" to execute the application
> Rackup is used to start a web server on port 80 listening on any interface
Copyright © SUSE 2021
Build Image 2/3 Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Define the ".gitlab-ci.yml"
> Describes the pipeline's stages
> Orchestrates the code assembly
> Steps are triggered on commit
> Uses variables defined in the project (described later on)
Defining the private registry to use with an internal certificate
"Podman" is used to build the container image
> podman logs in the private registry
> The container image is built
> The resulting image is pushed in the private registry
Copyright © SUSE 2021
Build Image 3/3 Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Define the variables needed for your pipeline
> In your gitlab project
> "Settings" tab, "CI/CD" menu
> Declare the needed variables
Copyright © SUSE 2021
Push to Registry Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Harbor 2.1.1
> Installed on a K8S cluster deployed with Rancher
> SUSE Helm Chart was used
> Chart repo: https://kubernetes-charts.suse.com
Parameters:
Project and namespace are declared (public access)
> Project: se-apps
> Namespace: hero-demo (created during the first "push")
> Utilisateur: ci01 + define password
> Adding ci01 to "se-apps" project: role "user"
Copyright © SUSE 2021
Scan Image Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
NeuVector is a simple and comprehensive scanner for vulnerabilities
in container images, file systems, and Git repositories, as well as for
configuration issues.
Copyright © SUSE 2021
Deploy Application 1/3 Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
A user needs to be created within Rancher for cluster control
> "pipeline-dev1" is created as a standard global user
> "pipeline-dev1" is added as a member to the K8S cluster(s)
to be used in the pipeline
Copyright © SUSE 2021
Deploy Application 2/3 Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Defining our K8S Cluster to be used by Gitlab
> In the defined Gitproject, under the "Infrastructure" tab, select "Kubernetes clusters"
> At least one target K8S cluster needs to be defined
> Add your cluster using "Connect cluster with certificate"
> Use the tab "Connect existing cluster"
Get your cluster "API URL" and "Service Token"
> In the Rancher UI, select your desired cluster to be used
> On the upper right, click on the button "Download KubeConfig"
For the selected cluster, note:
> "server" field
> "token" field
The cluster can now be added.
Copyright © SUSE 2021
Deploy Application 3/3 Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
Select a container embedding K8S client tools
> Kubectl binary is needed for our operations
Check Helm Chart syntax
> The folder "chart" is read for syntax errors
Using helm to deploy the application in the folder "chart"
> Define the image to be used (from the private registry)
> Set a unique image tag based on the deployment
> Define the ingress rules
> Define the namespace to be used
Copyright © SUSE 2021
Test, qualify, produce… Commit code
Build
image
Push to
registry
Scan
image
Deploy
application
Test and
Qualify
Produce
1 2 3 4 5 … rolling ...
The application is ready to be tested
> The pipeline will be automatically initiated when a code commit happens
> Under yourproject, the CI/CD tab, select "Pipelines"
> You can review each launched pipeline
> When a pipeline is successful you can connect to the application using the defined ingress address for review
Copyright © SUSE 2021
© 2020 SUSE LLC. All Rights Reserved. SUSE and
the SUSE logo are registered trademarks of
SUSE LLC in the United States and other
countries. All third-party trademarks are the
property of their respective owners.
For more information, contact SUSE at:
+1 800 796 3700 (U.S./Canada)
+49 (0)911-740 53-0 (Worldwide)
Maxfeldstrasse 5
90409 Nuremberg
www.suse.com
Thank you

More Related Content

What's hot

Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
Vincent Composieux
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Etsuji Nakai
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
Amit Manwade
 
CI-Jenkins.pptx
CI-Jenkins.pptxCI-Jenkins.pptx
CI-Jenkins.pptx
MEDOBEST1
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
Ji-Woong Choi
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Vietnam Open Infrastructure User Group
 
Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup. Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup.
Neeraj Shrimali
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
Docker, Inc.
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
VMware Tanzu
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
LINE Corporation
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Silicon Comté
 
helm 입문
helm 입문helm 입문
helm 입문
choi sungwook
 
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
Edureka!
 
Helm 3
Helm 3Helm 3
Docker
DockerDocker
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
Jo Hoon
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
Sparkbit
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
Sreenivas Makam
 
Helm intro
Helm introHelm intro
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
Ravindu Fernando
 

What's hot (20)

Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
 
CI-Jenkins.pptx
CI-Jenkins.pptxCI-Jenkins.pptx
CI-Jenkins.pptx
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin	Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
Kata Container - The Security of VM and The Speed of Container | Yuntong Jin
 
Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup. Linux container, namespaces & CGroup.
Linux container, namespaces & CGroup.
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
 
Rancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep DiveRancher 2.0 Technical Deep Dive
Rancher 2.0 Technical Deep Dive
 
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
 
helm 입문
helm 입문helm 입문
helm 입문
 
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
Docker vs VM | | Containerization or Virtualization - The Differences | DevOp...
 
Helm 3
Helm 3Helm 3
Helm 3
 
Docker
DockerDocker
Docker
 
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
[GuideDoc] Deploy EKS thru eksctl - v1.22_v0.105.0.pdf
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Docker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting TechniquesDocker Networking - Common Issues and Troubleshooting Techniques
Docker Networking - Common Issues and Troubleshooting Techniques
 
Helm intro
Helm introHelm intro
Helm intro
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 

Similar to Code Factory avec GitLab CI et Rancher

Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et Rancher
SUSE
 
Rancher Rodéo France
Rancher Rodéo FranceRancher Rodéo France
Rancher Rodéo France
SUSE
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
Hendri Karisma
 
IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017
Robert Parker
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
kushalsingh007
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
Sébastien Le Gall
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
Vincent De Smet
 
Class.devops.chapter.3.hybrid
Class.devops.chapter.3.hybridClass.devops.chapter.3.hybrid
Class.devops.chapter.3.hybrid
Ross Tang
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
Suman Chakraborty
 
citus™ iot ecosystem
citus™ iot ecosystemcitus™ iot ecosystem
citus™ iot ecosystem
DUONG Dinh Cuong
 
Continuous Integration & Development with Gitlab
Continuous Integration & Development with GitlabContinuous Integration & Development with Gitlab
Continuous Integration & Development with Gitlab
Ayush Sharma
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Patrick Chanezon
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
Simon Storm
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Mario-Leander Reimer
 
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...
Oleg Shalygin
 
Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0
Jules Pierre-Louis
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
Jules Pierre-Louis
 
Continuous Integration using Docker & Jenkins
Continuous Integration using Docker & JenkinsContinuous Integration using Docker & Jenkins
Continuous Integration using Docker & Jenkins
B1 Systems GmbH
 
How Postman adopted Docker
How Postman adopted DockerHow Postman adopted Docker
How Postman adopted Docker
Shamasis Bhattacharya
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
Arun prasath
 

Similar to Code Factory avec GitLab CI et Rancher (20)

Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et Rancher
 
Rancher Rodéo France
Rancher Rodéo FranceRancher Rodéo France
Rancher Rodéo France
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
 
IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
 
Class.devops.chapter.3.hybrid
Class.devops.chapter.3.hybridClass.devops.chapter.3.hybrid
Class.devops.chapter.3.hybrid
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
citus™ iot ecosystem
citus™ iot ecosystemcitus™ iot ecosystem
citus™ iot ecosystem
 
Continuous Integration & Development with Gitlab
Continuous Integration & Development with GitlabContinuous Integration & Development with Gitlab
Continuous Integration & Development with Gitlab
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 
Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14Docker dev ops for cd meetup 12-14
Docker dev ops for cd meetup 12-14
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
 
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...
 
Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0Pipeline: Continuous Delivery as Code in Jenkins 2.0
Pipeline: Continuous Delivery as Code in Jenkins 2.0
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 
Continuous Integration using Docker & Jenkins
Continuous Integration using Docker & JenkinsContinuous Integration using Docker & Jenkins
Continuous Integration using Docker & Jenkins
 
How Postman adopted Docker
How Postman adopted DockerHow Postman adopted Docker
How Postman adopted Docker
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 

More from SUSE

Neuvector Rodeo 17 mars 20234
Neuvector Rodeo 17 mars 20234Neuvector Rodeo 17 mars 20234
Neuvector Rodeo 17 mars 20234
SUSE
 
Coffee Break NeuVector
Coffee Break NeuVectorCoffee Break NeuVector
Coffee Break NeuVector
SUSE
 
Harvester
HarvesterHarvester
Harvester
SUSE
 
L'affaire CentOS
L'affaire CentOSL'affaire CentOS
L'affaire CentOS
SUSE
 
Harvester café
Harvester caféHarvester café
Harvester café
SUSE
 
Lancement Harvester
Lancement HarvesterLancement Harvester
Lancement Harvester
SUSE
 
Innovate everywhere - SUSE edge
Innovate everywhere - SUSE edgeInnovate everywhere - SUSE edge
Innovate everywhere - SUSE edge
SUSE
 
Expert Day 2019 - HA et SAP : How QA is done
Expert Day 2019 - HA et SAP : How QA is doneExpert Day 2019 - HA et SAP : How QA is done
Expert Day 2019 - HA et SAP : How QA is done
SUSE
 
Expert Day 2019 - Automated SAP HANA deployments et Terraform
Expert Day 2019 - Automated SAP HANA deployments et TerraformExpert Day 2019 - Automated SAP HANA deployments et Terraform
Expert Day 2019 - Automated SAP HANA deployments et Terraform
SUSE
 
Expert Day 2019 - CaaSP et CAP
Expert Day 2019 - CaaSP et CAPExpert Day 2019 - CaaSP et CAP
Expert Day 2019 - CaaSP et CAP
SUSE
 
Expert Day 2019 - SUSE Enterrpise Storage et CEPH
Expert Day 2019 - SUSE Enterrpise Storage et CEPHExpert Day 2019 - SUSE Enterrpise Storage et CEPH
Expert Day 2019 - SUSE Enterrpise Storage et CEPH
SUSE
 
Expert Day 2019 - SUSE OpenStack Cloud
Expert Day 2019 - SUSE OpenStack CloudExpert Day 2019 - SUSE OpenStack Cloud
Expert Day 2019 - SUSE OpenStack Cloud
SUSE
 
Expert Day 2019 - SUSE Manager
Expert Day 2019 - SUSE ManagerExpert Day 2019 - SUSE Manager
Expert Day 2019 - SUSE Manager
SUSE
 
Expert Day 2019 - SUSE public beta program
Expert Day 2019 - SUSE public beta programExpert Day 2019 - SUSE public beta program
Expert Day 2019 - SUSE public beta program
SUSE
 
Expert Day 2019 - Introduction
Expert Day 2019 - IntroductionExpert Day 2019 - Introduction
Expert Day 2019 - Introduction
SUSE
 
Expert Day 2019 - SUSE Linux Enterprise 15
Expert Day 2019 - SUSE Linux Enterprise 15Expert Day 2019 - SUSE Linux Enterprise 15
Expert Day 2019 - SUSE Linux Enterprise 15
SUSE
 
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
SUSE
 
Case study : New SAP S/4HANA on SUSE Implementation Business Benefits Achieved
Case study : New SAP S/4HANA on SUSE Implementation Business Benefits AchievedCase study : New SAP S/4HANA on SUSE Implementation Business Benefits Achieved
Case study : New SAP S/4HANA on SUSE Implementation Business Benefits Achieved
SUSE
 
Lifecycle Management for the Software Defined Infrastructure
Lifecycle Management for the Software Defined InfrastructureLifecycle Management for the Software Defined Infrastructure
Lifecycle Management for the Software Defined Infrastructure
SUSE
 
What is Your Edge From the Cloud to the Edge, Extending Your Reach
What is Your Edge From the Cloud to the Edge, Extending Your ReachWhat is Your Edge From the Cloud to the Edge, Extending Your Reach
What is Your Edge From the Cloud to the Edge, Extending Your Reach
SUSE
 

More from SUSE (20)

Neuvector Rodeo 17 mars 20234
Neuvector Rodeo 17 mars 20234Neuvector Rodeo 17 mars 20234
Neuvector Rodeo 17 mars 20234
 
Coffee Break NeuVector
Coffee Break NeuVectorCoffee Break NeuVector
Coffee Break NeuVector
 
Harvester
HarvesterHarvester
Harvester
 
L'affaire CentOS
L'affaire CentOSL'affaire CentOS
L'affaire CentOS
 
Harvester café
Harvester caféHarvester café
Harvester café
 
Lancement Harvester
Lancement HarvesterLancement Harvester
Lancement Harvester
 
Innovate everywhere - SUSE edge
Innovate everywhere - SUSE edgeInnovate everywhere - SUSE edge
Innovate everywhere - SUSE edge
 
Expert Day 2019 - HA et SAP : How QA is done
Expert Day 2019 - HA et SAP : How QA is doneExpert Day 2019 - HA et SAP : How QA is done
Expert Day 2019 - HA et SAP : How QA is done
 
Expert Day 2019 - Automated SAP HANA deployments et Terraform
Expert Day 2019 - Automated SAP HANA deployments et TerraformExpert Day 2019 - Automated SAP HANA deployments et Terraform
Expert Day 2019 - Automated SAP HANA deployments et Terraform
 
Expert Day 2019 - CaaSP et CAP
Expert Day 2019 - CaaSP et CAPExpert Day 2019 - CaaSP et CAP
Expert Day 2019 - CaaSP et CAP
 
Expert Day 2019 - SUSE Enterrpise Storage et CEPH
Expert Day 2019 - SUSE Enterrpise Storage et CEPHExpert Day 2019 - SUSE Enterrpise Storage et CEPH
Expert Day 2019 - SUSE Enterrpise Storage et CEPH
 
Expert Day 2019 - SUSE OpenStack Cloud
Expert Day 2019 - SUSE OpenStack CloudExpert Day 2019 - SUSE OpenStack Cloud
Expert Day 2019 - SUSE OpenStack Cloud
 
Expert Day 2019 - SUSE Manager
Expert Day 2019 - SUSE ManagerExpert Day 2019 - SUSE Manager
Expert Day 2019 - SUSE Manager
 
Expert Day 2019 - SUSE public beta program
Expert Day 2019 - SUSE public beta programExpert Day 2019 - SUSE public beta program
Expert Day 2019 - SUSE public beta program
 
Expert Day 2019 - Introduction
Expert Day 2019 - IntroductionExpert Day 2019 - Introduction
Expert Day 2019 - Introduction
 
Expert Day 2019 - SUSE Linux Enterprise 15
Expert Day 2019 - SUSE Linux Enterprise 15Expert Day 2019 - SUSE Linux Enterprise 15
Expert Day 2019 - SUSE Linux Enterprise 15
 
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
Software-defined Datacenter Maintenance - No More Sleepless Nights and Long W...
 
Case study : New SAP S/4HANA on SUSE Implementation Business Benefits Achieved
Case study : New SAP S/4HANA on SUSE Implementation Business Benefits AchievedCase study : New SAP S/4HANA on SUSE Implementation Business Benefits Achieved
Case study : New SAP S/4HANA on SUSE Implementation Business Benefits Achieved
 
Lifecycle Management for the Software Defined Infrastructure
Lifecycle Management for the Software Defined InfrastructureLifecycle Management for the Software Defined Infrastructure
Lifecycle Management for the Software Defined Infrastructure
 
What is Your Edge From the Cloud to the Edge, Extending Your Reach
What is Your Edge From the Cloud to the Edge, Extending Your ReachWhat is Your Edge From the Cloud to the Edge, Extending Your Reach
What is Your Edge From the Cloud to the Edge, Extending Your Reach
 

Recently uploaded

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 

Recently uploaded (20)

Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 

Code Factory avec GitLab CI et Rancher

  • 1. Copyright © SUSE 2021 Code Factory 1 A V R I L 2 02 2 Benoît Loriot Brice Dekany Julien Niedergang Code Factory Run
  • 2. Copyright © SUSE 2021 Agenda 1. SUSE / Rancher 2. Intégration Continue 3. Démo Synchronisation des montres: Rancher Rodéo n°8 Vendredi 13 Mai 9h30 à 12h00
  • 3. Copyright © SUSE 2021 Portfolio SUSE Hybrid Cloud Infrastructure Dev Datacenter Branch Cloud Edge Support & Services Catalog Security Storage Governance The platform for managing all Kubernetes distributions Datacenter Edge Block Storage Linux SLE Desktop / POS SLE Server SLESfor SAP Applications SLESfor HPC SLE Micro SLE Extensions SUSE Manager SUSE Linux Enterprise Compliance Security Availability Management The only adaptable Linux operating system Other Linux Cloud-native HCI Security
  • 4. Copyright © SUSE 2021 Copyright © SUSE 2021 Définition et Architecture Intégration Continue
  • 5. Copyright © SUSE 2021 Objectif de l’intégration continue Suis-je en mode aléatoire? Aussitôt que le code est poussé… il est intégré pour validation Intégration Continue Scénario Hmm… Pas mal cette modif… Evaluation Code
  • 6. Copyright © SUSE 2021 Glossaire de l’intégration continue Cycle de vie applicatif Installation des applications et de leur dépendance. Cycle de vie des applications et de leurs composants. Helm Kustomize Dépôt de code Outil central pour tous les développeurs Gestion collaborative du code des applications Github Gitlab Intégration Continue Orchestration Registre Stockage et mise à disposition des images de conteneurs Les images contiennent les exécutables pour les applications Harbor Docker registry Nexus Forge Assemblage de l’application et construction d’uneimage de conteneur Résultat stocké dans un registre Gitlab-CI Jenkins Tekton
  • 7. Copyright © SUSE 2021 Code Factory and Applications Today's classical customer architecture Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Production Code Forge Container Image Compiler Continuous Integration Gitlab Security Scans Neuvector 2 4 Image Registry Container Image Storage 3 Deployment Kubernetes 1 Evaluate Code Rancher Desktop 5 ²
  • 8. Copyright © SUSE 2021 8 SUSE Rancher SLA Coverage & Ready Partners App Management & CI/CD Monitoring & Logging Registry & Image Scanning Container Security & Secrets Networking & Service Mesh Platforms & Orchestration Persistent Storage Container Engine Operating Systems Infrastructure SUSE Rancher SLA SUSE Rancher Ready Partners Authentication & Authorization GK E AK S * * * * * Requires separate subscription
  • 9. Copyright © SUSE 2021 Copyright © SUSE 2021 Choix d'architecture Architecture
  • 10. Copyright © SUSE 2021 Architecture – Code Factory Services Repos - Packages packages for OS Registry Harbor NTP Repos - Code Gitlab Load Balancer 2 VIPs Shared Storage Type/version du stockage DNS 1 x FQDN Mgmt 1 x FQDN (wildcard?)vers workers Accès Liste des ouvertures réseau nécessaire Proxy Container Network Infrastructure Calico, Canal… Hyperviseur (VMs) LAN Network Rancher Server (Management) 4 vCPU 8GB RAM 1 x 50GB vDisk 1 x vNic Rancher Mgmt (VM) 3 x Code repository Continuous Integration 2 vCPU 4GB RAM 1 x 100GB vDisk 1 x vNic Gitlab (VM) 1 x Forge (Image build) 2 vCPU 4GB RAM 1 x 100GB vDisk 1 x vNic GitlabRunner (VM) 1 x Downstream Cluster (Applications) 8 x vCPUs 16GB RAM 1 x 100GB vDisk 1 x vNic 1 x vNic Storage K8S Worker (VM) 3 x 4 x vCPUs 8GB RAM 1 x 50GB vDisk 1 x vNic K8S Master (VM) 3 x (Container) (Container) Application 1 (Container) Application 2 (Container)
  • 11. Copyright © SUSE 2021 Copyright © SUSE 2021 Démo Code Assembly Pipeline
  • 12. Copyright © SUSE 2021 Commit Code Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Application source code: - Application: > Web server with Ruby Sinatra > Ruby based application - The Base Container Image to be used needs Ruby binaries - Git repository in a Git Lab server > Git Lab CE 14.3.1 > Living Code with multiple branches > Bugs and revisions are stored here > Gitlab defines the pipeline
  • 13. Copyright © SUSE 2021 Build Image 1/3 Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Creating a file to describe our container image: - File "Dockerfile" - Ruby based image is being used for the app to run successfully - Create a folder "app" to host the application - Copying the "Gemfile" from the repo in the image > Gemfile contains the needed Ruby dependencies for the app - Install app & dependencies using the "bundle install" command - Copy the full repository content in the "app" folder - Define the executable command when the container is started > Using "bundle exec" to execute the application > Rackup is used to start a web server on port 80 listening on any interface
  • 14. Copyright © SUSE 2021 Build Image 2/3 Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Define the ".gitlab-ci.yml" > Describes the pipeline's stages > Orchestrates the code assembly > Steps are triggered on commit > Uses variables defined in the project (described later on) Defining the private registry to use with an internal certificate "Podman" is used to build the container image > podman logs in the private registry > The container image is built > The resulting image is pushed in the private registry
  • 15. Copyright © SUSE 2021 Build Image 3/3 Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Define the variables needed for your pipeline > In your gitlab project > "Settings" tab, "CI/CD" menu > Declare the needed variables
  • 16. Copyright © SUSE 2021 Push to Registry Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Harbor 2.1.1 > Installed on a K8S cluster deployed with Rancher > SUSE Helm Chart was used > Chart repo: https://kubernetes-charts.suse.com Parameters: Project and namespace are declared (public access) > Project: se-apps > Namespace: hero-demo (created during the first "push") > Utilisateur: ci01 + define password > Adding ci01 to "se-apps" project: role "user"
  • 17. Copyright © SUSE 2021 Scan Image Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... NeuVector is a simple and comprehensive scanner for vulnerabilities in container images, file systems, and Git repositories, as well as for configuration issues.
  • 18. Copyright © SUSE 2021 Deploy Application 1/3 Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... A user needs to be created within Rancher for cluster control > "pipeline-dev1" is created as a standard global user > "pipeline-dev1" is added as a member to the K8S cluster(s) to be used in the pipeline
  • 19. Copyright © SUSE 2021 Deploy Application 2/3 Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Defining our K8S Cluster to be used by Gitlab > In the defined Gitproject, under the "Infrastructure" tab, select "Kubernetes clusters" > At least one target K8S cluster needs to be defined > Add your cluster using "Connect cluster with certificate" > Use the tab "Connect existing cluster" Get your cluster "API URL" and "Service Token" > In the Rancher UI, select your desired cluster to be used > On the upper right, click on the button "Download KubeConfig" For the selected cluster, note: > "server" field > "token" field The cluster can now be added.
  • 20. Copyright © SUSE 2021 Deploy Application 3/3 Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... Select a container embedding K8S client tools > Kubectl binary is needed for our operations Check Helm Chart syntax > The folder "chart" is read for syntax errors Using helm to deploy the application in the folder "chart" > Define the image to be used (from the private registry) > Set a unique image tag based on the deployment > Define the ingress rules > Define the namespace to be used
  • 21. Copyright © SUSE 2021 Test, qualify, produce… Commit code Build image Push to registry Scan image Deploy application Test and Qualify Produce 1 2 3 4 5 … rolling ... The application is ready to be tested > The pipeline will be automatically initiated when a code commit happens > Under yourproject, the CI/CD tab, select "Pipelines" > You can review each launched pipeline > When a pipeline is successful you can connect to the application using the defined ingress address for review
  • 22. Copyright © SUSE 2021 © 2020 SUSE LLC. All Rights Reserved. SUSE and the SUSE logo are registered trademarks of SUSE LLC in the United States and other countries. All third-party trademarks are the property of their respective owners. For more information, contact SUSE at: +1 800 796 3700 (U.S./Canada) +49 (0)911-740 53-0 (Worldwide) Maxfeldstrasse 5 90409 Nuremberg www.suse.com Thank you