«» CI/CD. Southbridge Tinkoff .
, :
- GitLab runner: , ?
- ? , ?
- , Docker ?
- Docker-in-Docker?
- ?
YouTube. — .
20.10 Docker Engine rootless. , . - Docker- root-?
: , - . , , Docker. Docker-in-Docker, , , Docker-in-Docker rootless .
, , Gitlab, kaniko. , - , Gitlab , . , , .
: Gitlab (issue), , rootless, . kaniko, kaniko .
, helm- — ? ? deployment.yml ?
: it depends — . open source , , makefile, , , Docker-. Github, github actions Docker Hub . : open source , .
, , : , — . , , . , — , , - helm- . , GitLab CI , , Kubernetes.
: , , Kubernetes. , Argo CD, . CI (push-) Argo.
, . , , Continuous Deployment ? .
: , , . CI/CD , — . .
gitlab-ci ?
: , , , . — gitlab-ci.yml — . , .
: , , . , , : , , .
Jira GitLab?
: GitLab Jira, .
: , issue-: Jira, YouTrack. , , . , GitLab.
job’a release , only changes?
: : , . GitLab , , . , , GitLab.
GitLab . ?
GitLab ? , host, . - ? , host_dev, host_prod host_test, , ? ?
: . , , - env- .
— host_dev, host_prod, host_test . ?
: , . , , .
: . , . …
deploy release, , ?
: job stage, job prod?
, job, prod , , only text. .
: (YAML — . ) , job’ . extends, Docker. job variables, job’ , host environment, .
job’, , . , - , , gitlab-ci.yml.
SSH executor ?
: . , , - tcp- .
, test staging, , prod?
: , . , , . . Kubernetes , «SSH , SSH » — , .
Kubernetes , , namespace ?
: , . namespace .
, ? .
: , , executor .
: concurrency. , , — , concurrency. : job’ , .
job’ ?
: , bash , SSH-, Docker- Kubernetes.
Argo CD GitOps- ? , prod , + , dev / ?
: , . : , -. . - GitLab issue, . .
, Argo CD - . , . — - (namespace Kubernetes) - , - .
, CI/CD. Argo, , . GitOps-. -, werf «» — Docker-. GitOps — . , .
Argo : «! - , Kubernetes», - .
: , — , . , Argo CD. , : 1.2.0
, 1.2.1
. stage 1.2.*
— stage. QA 1.*
— . , — *, Argo CD .
Docker-? trivy , ?
: Trivy, .
, , ?
: , . ! , , Google Microsoft — . , . GitLab CI/CD, : - , , — only changes, . - , GitLab . , ( - , , ) . .
: open source , , . , : «, Google/Amazon/Facebook, , , , . , . GitLab».
, , — “only changes” . - , , . Kubernetes, 5 ( ) . , , , . , , , — . , . Go , . - — .
, , , . , GitLab.
: « — », - ( , ) Argo .
best practices ? , ? Docker-, , , kvm?
: GitLab Docker Machine, — (AWS, Azure, VirtualBox, Hyper V, vmWare). KVM . . , AWS S3 .
Docker Machine GitLab . , , , - . — Kubernetes. best practice — GitLab, . , - .
( ). concurrency, , - , — .
: Kubernetes, taint PreferNoSchedule, - . nodeSelector . .
, , , . , — CPU ( CPU, ). Docker-, ( - : , , Docker- ), , , , , , Docker- registry.
- . . , 4 , - Java .
Kubernetes . Kubernetes - , build-, . , , . Kubernetes . SSH shell-, , . GitLab Runner, , . .
Docker-in-Docker? , GitLab?
: : Docker-in-Docker , Docker. - Docker… : Docker, Docker-in-Docker Docker- (Python, , - ).
: . Docker-in-Docker . , kaniko, kaniko, ( ). Docker-in-Docker. , Docker-in-Docker - , , , -, Docker- .
Docker-in-Docker — . : root-, , . Dockerfile, SSH-, , root- dev/sda1 — , , .
: Podman, Buildah kaniko. , Kubernetes Docker — , . Docker ( ) rootless mode. root.
, Docker, ( docker prune -a)?
: — , , . - .
: : docker prune -a
. — Docker- . — , . , Docker-, .
, Docker-, Docker- GitLab registry, , GitLab 250 . , GitLab 250 , GitLab registry 250 . GitLab Omnibus persistent volume . registry 500 , , , 750 , — - . , , - . , , - .
(, GitHub) GitLab GitLab? GitLab , , . . pull «», . , ?
: , Starter. GitHub, GitLab GitLab pull GitHub. , , , . CI/CD : , . , , .
: . . , , GitLab, . , TLS- , , , - — , . « ? ! — , GitLab ». , , , .
GitLab docker-: , ? ?
, , - , GitLab-
( GitLab ) ? : Docker- (, kvm)?
GitLab: 100 , 200 .
: , KVM . Docker- — - : , 15 . GitLab , . , ?
GitLab. 100 2 ( 500 ) 4 ( 100 ). : , , 2. , , .
. , : html- java-. . , - , .
: , GitLab. . GitLab - 500 , - 200 . … , 1,5 2 , , . 50 .
: , , , — . 4 , . , PostgreSQL, GitLab, . , , .
GitLab : GitLab, . , , Docker executor.
Kubernetes. , SSH docker\docker-compose.
: , . ( — . ) — Docker. : SSH , docker stop, docker rm ( ) docker run , . .
Docker , , CI/CD . , .
: SSH, . , , . , Kubernetes , Docker (, healthcheck, ).
SSH, , - systemd. , Ansible , , systemd.
: ( , ), Bash , - . , docker run ; docker run, registry, . - , , docker run.
( )?
: . AWS , - . , , - , , . Docker compose.
: GitLab runner, , ? , , . ? ? .
: Kubernetes, , - , , … OpenShift , , . - , . , , , - , , — .
: . - Docker- . . - , ?
?
: GitLab , , . , , . !
: issue, , . , . . - , , UI GitLab . .
, , , «» . , Git runtime-?
: , , . , . : , , , GitLab, push CI/CD , .
: , . , , ( ) , , , . ( , ), — ( ; - ) .
NAT, GitLab. , GitLab NAT, GitLab. , GitLab, . : — . , . , TLS-, ( proxy, GitLab) .
: proxy, NAT , , , . , CI/CD . CI/CD, .
: , , , : « , , ».
, , . : ? , , . deal breaker, .
- CI/CD GitLab, zip-, ? ?
: , zip-, GitLab CI - ? , . ? - , , SSH . , GitLab, .
: - job’ , , , , zip-, , , nexus ( docker registry — . ) . , . , , GitLab .