maish saidel-keesing & naama bamberger, cisco - the openstack plugin for jenkins, openstack...

42
Simple and Painless CI/CD The OpenStack Plugin for Jenkins Naama Bamberger ([email protected] ) Maish Saidel-Keesing ([email protected] ) Monday, June 15, 2015

Upload: openstack-israel

Post on 14-Aug-2015

206 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

Simple and Painless CI/CD

The OpenStack Plugin for JenkinsNaama Bamberger ([email protected])Maish Saidel-Keesing ([email protected])

Monday, June 15, 2015

Page 2: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

2© 2015 Cisco and/or its affiliates. All rights reserved

Nice to Meet You!

Integrated Infrastructure

Adiel Grosmark([email protected])

Einav Rivni([email protected])

@maishsk

Page 3: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

Learn more about Cisco’s technology and solutions for OpenStack®, in three areas:

Building OpenStack

Code Contributions

Infrastructure

Using OpenStack

Operations and Management

Application Tools

Connecting OpenStack

Intercloud

Partner Ecosystem

Page 4: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

4© 2015 Cisco and/or its affiliates. All rights reserved

CI/CD with OpenStack

Page 5: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

5© 2015 Cisco and/or its affiliates. All rights reserved.

piedmont_fossil (flickr)

atomicshed(flickr)

kovah (flickr)

Page 6: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

Our Goal?

A CI/CD pipeline – using OpenStack

Page 7: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

7© 2015 Cisco and/or its affiliates. All rights reserved.

Page 8: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

8© 2015 Cisco and/or its affiliates. All rights reserved.

Modular Stack

ardonik (flickr)

• Modularity

• Each team is responsible for their components

• Heat defines only the deployment model

ardonik (flickr)

Page 9: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

9© 2015 Cisco and/or its affiliates. All rights reserved.

Doesn’t this complicate things?

dannyman (flickr)

Page 10: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

10© 2015 Cisco and/or its affiliates. All rights reserved.

That is where Jenkins comes in

Page 11: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

11© 2015 Cisco and/or its affiliates. All rights reserved.

The plugin

Page 12: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

12© 2015 Cisco and/or its affiliates. All rights reserved.

Define Product

Generate Product Artifact

Define Deployment

Deploy on OpenStack

Page 13: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

13© 2015 Cisco and/or its affiliates. All rights reserved.

• Required RPMs• Dependent products• HEAT template• Puppet scripts

Define Product

Generate Product Artifact

Define Deployment

Deploy on OpenStack

Page 14: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

14© 2015 Cisco and/or its affiliates. All rights reserved.

Define Product

Generate Product Artifact

Define Deployment

Deploy on OpenStack

• Resolve versions• Download dependencies• Generate Artifacts (pom, tar, rpm)• Upload to Nexus

Page 15: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

15© 2015 Cisco and/or its affiliates. All rights reserved.

Define Product

Generate Product Artifact

Define Deployment

Deploy on OpenStack

• What to deploy?• Where to deploy to?

• OpenStack credentials• Stack parameters

• Which YUM repo to use?

Page 16: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

16© 2015 Cisco and/or its affiliates. All rights reserved.

• Delete old stack• Download all artifacts• Move RPMs to YUM repo• Load stack• Set parameters• Create Stack• Wait for completion

Define Product

Generate Product Artifact

Define Deployment

Deploy on OpenStack

Page 17: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

17© 2015 Cisco and/or its affiliates. All rights reserved.

• From cloned Heat git repo• Load stack by name pattern (xx.yaml, xx.env.yaml, xx.yaml.dependencies

nested files)• Parse yaml & replace parameters (Jenkins)• Generate the createStack REST request from

the loaded data

Stack Creation

Page 18: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

18© 2015 Cisco and/or its affiliates. All rights reserved.

• For multiple stacks, with relationships and dependencies• Database (backend)• Web application

• In the ‘product create’ step, you can set the dependent products and the order in which they will be deployed

• The Jenkins plugin will deploy the whole set

Nesting

tambako (flickr)

Page 19: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

19© 2015 Cisco and/or its affiliates. All rights reserved.

• Input and Output parameters

Wiring

output input1 2

Page 20: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

20© 2015 Cisco and/or its affiliates. All rights reserved.

Demo Time!!

Page 21: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

21© 2015 Cisco and/or its affiliates. All rights reserved.

• https://github.com/foundation-runtime/jenkins-openstack-deployment-plugin

• https://github.com/ciscosystems

Links and Info

Page 22: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

22© 2015 Cisco and/or its affiliates. All rights reserved.

Thank You

Page 23: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

23© 2015 Cisco and/or its affiliates. All rights reserved.

Page 24: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

24© 2015 Cisco and/or its affiliates. All rights reserved.

ScreenShots For Demo

Page 25: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

25© 2015 Cisco and/or its affiliates. All rights reserved.

Page 26: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

26© 2015 Cisco and/or its affiliates. All rights reserved.

Page 27: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

27© 2015 Cisco and/or its affiliates. All rights reserved.

Page 28: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

28© 2015 Cisco and/or its affiliates. All rights reserved.

Page 29: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

29© 2015 Cisco and/or its affiliates. All rights reserved.

Page 30: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

30© 2015 Cisco and/or its affiliates. All rights reserved.

Page 31: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

31© 2015 Cisco and/or its affiliates. All rights reserved.

Page 32: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

32© 2015 Cisco and/or its affiliates. All rights reserved.

Page 33: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

33© 2015 Cisco and/or its affiliates. All rights reserved.

Page 34: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

34© 2015 Cisco and/or its affiliates. All rights reserved.

Page 35: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

35© 2015 Cisco and/or its affiliates. All rights reserved.

Page 36: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

36© 2015 Cisco and/or its affiliates. All rights reserved.

Page 37: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

37© 2015 Cisco and/or its affiliates. All rights reserved.

Page 38: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

38© 2015 Cisco and/or its affiliates. All rights reserved.

Page 39: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

39© 2015 Cisco and/or its affiliates. All rights reserved.

Page 40: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

40© 2015 Cisco and/or its affiliates. All rights reserved.

Page 41: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

41© 2015 Cisco and/or its affiliates. All rights reserved.

Page 42: Maish Saidel-Keesing & Naama Bamberger, Cisco - The OpenStack Plugin for Jenkins, OpenStack Israel 2015

42© 2015 Cisco and/or its affiliates. All rights reserved.