The Jenkins Plugin for OpenStack

42
Simple and Painless CI/CD The OpenStack Plugin for Jenkins Naama Bamberger ([email protected] ) Maish Saidel-Keesing ([email protected] ) 5/9/22

Transcript of The Jenkins Plugin for OpenStack

Page 1: The Jenkins Plugin for OpenStack

Simple and Painless CI/CD

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

Saturday, April 15, 2023

Page 2: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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

CI/CD with OpenStack

Page 5: The Jenkins Plugin for OpenStack

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

piedmont_fossil (flickr)

atomicshed(flickr)

kovah (flickr)

Page 6: The Jenkins Plugin for OpenStack

Our Goal?

A CI/CD pipeline – using OpenStack

Page 7: The Jenkins Plugin for OpenStack

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

Page 8: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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

Doesn’t this complicate things?

dannyman (flickr)

Page 10: The Jenkins Plugin for OpenStack

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

That is where Jenkins comes in

Page 11: The Jenkins Plugin for OpenStack

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

The plugin

Page 12: The Jenkins Plugin for OpenStack

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

Define Product

Generate Product Artifact

Define Deployment

Deploy on OpenStack

Page 13: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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

• Input and Output parameters

Wiring

output input1 2

Page 20: The Jenkins Plugin for OpenStack

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

Demo Time!!

Page 21: The Jenkins Plugin for OpenStack

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: The Jenkins Plugin for OpenStack

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

Thank You

Page 23: The Jenkins Plugin for OpenStack

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

Page 24: The Jenkins Plugin for OpenStack

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

ScreenShots For Demo

Page 25: The Jenkins Plugin for OpenStack

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

Page 26: The Jenkins Plugin for OpenStack

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

Page 27: The Jenkins Plugin for OpenStack

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

Page 28: The Jenkins Plugin for OpenStack

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

Page 29: The Jenkins Plugin for OpenStack

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

Page 30: The Jenkins Plugin for OpenStack

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

Page 31: The Jenkins Plugin for OpenStack

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

Page 32: The Jenkins Plugin for OpenStack

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

Page 33: The Jenkins Plugin for OpenStack

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

Page 34: The Jenkins Plugin for OpenStack

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

Page 35: The Jenkins Plugin for OpenStack

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

Page 36: The Jenkins Plugin for OpenStack

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

Page 37: The Jenkins Plugin for OpenStack

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

Page 38: The Jenkins Plugin for OpenStack

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

Page 39: The Jenkins Plugin for OpenStack

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

Page 40: The Jenkins Plugin for OpenStack

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

Page 41: The Jenkins Plugin for OpenStack

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

Page 42: The Jenkins Plugin for OpenStack

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