Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Introduction of Cloud Native CI/CD on Kubernetes
kyo
August 30, 2019
Technology
0
24
Introduction of Cloud Native CI/CD on Kubernetes
Slides for in-house study meeting.
kyo
August 30, 2019
Tweet
Share
More Decks by kyo
See All by kyo
kyohmizu
0
20
kyohmizu
2
1.2k
kyohmizu
0
310
kyohmizu
0
32
kyohmizu
6
1.4k
kyohmizu
0
1.1k
kyohmizu
0
120
kyohmizu
0
31
kyohmizu
0
28
Other Decks in Technology
See All in Technology
picardparis
4
2.4k
tutsunom
1
170
supership
0
200
hmatsu47
2
140
hmatsu47
1
170
kawaguti
2
190
maekawa123
0
600
akabekobeko
0
160
ytaka23
1
580
oracle4engineer
0
120
gunnargrosch
0
210
lain21
14
5.3k
Featured
See All Featured
ddemaree
273
31k
lynnandtonic
272
16k
bkeepers
PRO
54
4.3k
productmarketing
6
770
shpigford
370
42k
jonyablonski
21
1.3k
skipperchong
8
780
chriscoyier
146
20k
orderedlist
PRO
330
36k
chriscoyier
683
180k
smashingmag
232
18k
jacobian
257
20k
Transcript
Introduction of Cloud Native CI/CD on Kubernetes
Trail Map https://github.com/cncf/trailmap
CI/CD From the trail map: Setup Continuous Integration/Continuous Delivery (CI/CD)
so that changes to your source code automatically result in a new container being built, tested, and deployed to staging and eventually, perhaps, to production
Landscape https://github.com/cncf/landscape
Landscape
CI/CD on Kubernetes
Pipeline-based CI tool Configuration as Code Fancy Visualization Management using
CLI tool Concourse CI https://concourse-ci.org/
Get Started https://github.com/helm/charts/tree/master/stable/concourse TL;DR; $ helm install stable/concourse Need to
set externalUrl to access from outside Install the fly CLI tool for concourse management $ fly -h
Pipeline https://github.com/starkandwayne/concourse-tutorial/blob/master/tutorials/basic/job- inputs/pipeline.yml resources: - name: resource-tutorial type: git source:
uri: https://github.com/starkandwayne/concourse-tutorial.git branch: develop - name: resource-app type: git source: uri: https://github.com/cloudfoundry-community/simple-go-web-app.git jobs: - name: job-test-app public: true plan: - get: resource-tutorial - get: resource-app trigger: true - task: web-app-tests file: resource-tutorial/tutorials/basic/job-inputs/task_run_tests.yml
Pipeline
Declarative, GitOps CD tool Automated deployment of desired application states
Support for config management tools (Kustomize, Helm etc) Argo CD https://argoproj.github.io/argo-cd/
Get Started Quick start $ kubectl create namespace argocd $
kubectl apply -n argocd -f \ https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml Access the endpoint by browser & Login Get admin password $ kubectl get pods -n argocd -l app.kubernetes.io/name=argocd-server \ -o name | cut -d'/' -f 2
Application
Application Manifest apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: concourse namespace:
argocd spec: project: default source: repoURL: https://github.com/helm/charts.git targetRevision: a7816917c50bc31471793f54036a7eaf0eeeb701 path: stable/concourse helm: parameters: - name: "web.service.type" value: "LoadBalancer" - name: "concourse.web.bindPort" value: "80" - name: "concourse.web.externalUrl" value: ${URL} releaseName: concourse destination: server: https://kubernetes.default.svc namespace: default
CI/CD Architecture In my self-study project:
Demo
Thank you!