CI / CD customization details: how GitLab runner works, when to use Docker-in-Docker, and where Argo CD comes in handy







«» 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 .







CI/CD








All Articles