GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps /...

32
GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Transcript of GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps /...

Page 1: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

GitLab CI / CD / DevOps / Auto DevOps / ...Kamil Trzciński, Staff Developer

@ayufanpl

CERN

1

Page 2: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

GitLab CI? or CD?? or Auto DevOps???

2

Page 3: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

h"p://es.memegenerator.net/instance/61228673

3

Page 4: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

4

Page 5: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

5

Page 6: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

6

Page 7: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

7

Page 8: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Recent features

8

Page 9: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Auto DevOps (11.0)

h"ps://docs.gitlab.com/ee/topics/autodevops/9

Page 10: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Security Dashboard (11.1)

10

Page 11: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Security Reports (11.1)

11

Page 12: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Kaniko support (11.2)

build: stage: build image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - 'mkdir -p /root/.docker' - echo ... > /root/.docker/config.json - /kaniko/executor \ --context "$CI_PROJECT_DIR" \ --dockerfile "$CI_PROJECT_DIR/Dockerfile" \ --destination "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG"

h"ps://docs.gitlab.com/ee/ci/docker/using_kaniko.html

12

Page 13: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

JUnit (11.2)

h"ps://docs.gitlab.com/ee/ci/junittestreports.html

13

Page 14: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

JUnit (11.2)

rspec: script: - rspec spec/lib/ --format RspecJunitFormatter --out rspec.xml artifacts: reports: junit: rspec.xml

h"ps://docs.gitlab.com/ee/ci/junittestreports.html

14

Page 15: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Maven Packages (11.3)

h"ps://docs.gitlab.com/ee/user/project/packages/maven_repository.html

15

Page 16: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Interac(ve Web Terminal (11.3)

Limited to Kubernetes and Shellh"ps://docs.gitlab.com/ee/administra5on/integra5on/terminal.html

16

Page 17: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Protected Environments (11.3)

h"ps://docs.gitlab.com/ee/ci/environments/protected_environments.html

17

Page 18: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Upcoming features

18

Page 19: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Feature Flags (11.4)

Provides Unleash-compa3ble interfaceh"ps://gitlab.com/gitlab-org/gitlab-ee/issues/779

19

Page 20: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Feature Flags (11.4)

func init() { unleash.Initialize( unleash.WithUrl("https://gitlab.com/api/v4/feature_flags/unleash/14"), unleash.WithInstanceId("29QmjsW6KngPR5JNPMWx"), unleash.WithAppName("production") )}

func helloServer(w http.ResponseWriter, req *http.Request) { if unleash.IsEnabled("my_feature_name") { io.WriteString(w, "Feature enabled\n") } else { io.WriteString(w, "hello, world!\n") }}

20

Page 21: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Kubernetes RBAC (11.4)

Support for Role-based access control

21

Page 22: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Auto DevOps RBAC (11.4)

RBAC will limit Kubernetes API access only to given namespace.

h"ps://gitlab.com/gitlab-org/gitlab-ce/merge_requests/21867

22

Page 23: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Web Terminal (11.4)

1. Support for Docker executor,

2. docker exec run strategy for Runner (stretch).

h"ps://gitlab.com/gitlab-org/gitlab-runner/issues/3467

23

Page 24: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Run jobs on changed files (11.4)

docker_build: only: changes: - Dockerfile - assets/*

The new branches workflow not yet supported:we need Pipeline for Merge Requests

24

Page 25: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Delayed jobs (11.4)

rollout 10%: script: ... when: delayed start_in: 20 minutes

Ideal use-case Incremental Rolloutsh"ps://gitlab.com/gitlab-org/gitlab-ce/issues/51352

25

Page 26: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Group Security Dashboards (11.4)

h"ps://gitlab.com/gitlab-org/gitlab-ee/issues/6709

26

Page 27: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Merge Trains (11.5?)

h"ps://gitlab.com/gitlab-org/gitlab-ee/issues/7380

27

Page 28: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Serverless (11.5?)

h"ps://gitlab.com/gitlab-org/gitlab-ce/issues/43959

28

Page 29: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Kna$ve (11.5?)

1. Scale to zero, request-driven compute model,

2. Cloud-na8ve source to container orchestra8on (uses kaniko),

3. Universal subscrip8on, delivery and management of events,

4. GitLab will add abstrac8on to provide FaaS (func8ons-as-a-service).

Auto DevOps on Kna&ve? or Auto Serverless?

29

Page 30: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Direct acyclic graphs (??)

h"ps://gitlab.com/gitlab-org/gitlab-ce/issues/47063

30

Page 31: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

31

Page 32: GitLab CI / CD / DevOps / Auto DevOps - indico.cern.ch · GitLab CI / CD / DevOps / Auto DevOps / ... Kamil Trzciński, Staff Developer @ayufanpl CERN 1

Thanks!

GitLab CI / CD / DevOps / Auto DevOps / ...Kamil Trzciński, Staff Developer, @ayufanpl

32