Cross-cloud CI
https://github.com/crosscloudci
http://crosscloud.ci
Demo of CI System v2.1.0 &
CI Status Dashboard v1.0.0
Friday, January 26, 2018
Meet the Cross-cloud CI Team
● Denver Williams
@denverwilliams
● W. Watson
@wavell
● Joshua Smith
@nupejosh
● Lucina Stricko
@lixuna
● Taylor Carpenter
@taylor
● Andre Ortiz*
@andreortiz82
● Robert Siekmann*
Cross-cloud CI Intro
Why? The CNCF ecosystem is large, diverse and continues to grow. CNCF
would like to show the status of cross-project interoperability and cross-cloud
deployments of all cloud native technologies.
What? The Cross-cloud CI project encompasses pipelines for builds,
provisioning, app deployments and e2e testing that continually validates the
interoperability of each CNCF project, for any commit on stable and HEAD,
across all supported cloud providers. The CI Status Dashboard displays the
results of those tests.
3
Goal: to target all CNCF projects
4
Goal: to target all public, bare metal & private clouds
5
CI Status Dashboard
6
CI Dashboard v1.0.0 Release:
● Overview of cncf.ci (Production)
○ Shows status of 3 pipeline stages: Build, Provision and App Deployments
○ Refreshes at 3:00am Eastern every day
○ Supports dynamically adding/removing active clouds and projects
■ 4 active CNCF projects are displayed, 5 active clouds are displayed
(AWS, Azure, GCE, GKE, Packet)
○ Clicking on Build status badge opens CI system build job URL
○ Clicking on Release Name opens project’s GitHub commit URL
○ Clicking on Deployment status badge opens “provisioning/app-deploy”
job URL
Live Demo: CI System + Status Dashboard
7
Demo: CI System + Status Dashboard:
● Pre-Demo: Builds and cloud provisioning were run in advance
○ Builds for all projects currently take 15-30 minutes
○ Kubernetes provisioning of all clouds currently takes 15-30 minutes
● Live Demo:
○ Start app deployment of all active projects to the provisioned clouds
○ Take a look at the staging Gitlab app deploy pipeline view
○ Take a look at the staging CI status dashboard showing app
deployments
Cross-cloud CI Pipeline Overview
8
● Build (per project eg. Prometheus, Kubernetes)
● Cloud Provisioning (cross-cloud)
● App Deployment (cross-project)
Build Pipeline Stages
9
1. Build: compile binaries and e2e tests
2. Package: create containers, create artifact pinning config and push to registry
3. Update-Dashboard: update build status badges
Cloud Provisioning Pipeline Stages
10
1. Build: Prepare provisioning software from the cross-cloud project
2. Artifacts: Collect K8s artifact pinnings from the previous K8s builds
3. Cross-Cloud: Deploy K8s onto each cloud using Cross-cloud provisioner
4. Update-Dashboard: Update deployment badges
App Deployment Pipeline Stages
11
1. Artifacts: Collect project artifact pinnings from the previous build stages
2. Cross-Project: Use Helm charts to deploy each project
3. End-to-End: Run e2e tests for each project
4. Dashboard-Update: Update deployment status badges
CI System Technology Overview
12
• Unified CI/CD platform: Gitlab
• Cross-cloud provisioning: Terraform, Cloud-init,
and per cloud K8s configuration
• App Deployments: K8s manifest management with Helm
• E2e tests: Custom containers + Helm
• Automated builds and deployments: Git + per project yaml configuration
Status Dashboard Technology Overview
13
• Backend API: Elixir and Erlang
• Frontend: Vue.js
• Automated builds and deployments: Git + per project yaml configuration
What’s next for Cross-Cloud CI Project?
14
CI Dashboard v1.0.1 Release:
● Display ONAP project on Dashboard Overview at cncf.ci
● Prepare demo for Mobile World Congress before Feb. 23
CI System v2.1.1 Release:
● Start supporting ONAP’s MSO project on K8s running on AWS, Azure,
GCE, GKE and Packet
What’s next for Cross-Cloud CI?
15
CI System v2.1.1 Release:
● Stretch goals for v2.1.1:
○ Add support for IBM Cloud
○ Add support for OpenStack
ONAP Design Mock-up (option 1)
16
ONAP Design Mock-up (option 2)
17
What’s next for Cross-Cloud CI Team?
18
Cross-Group Collaboration:
● Schedule demo with Erin Boyd, K8s Storage SIG
● Schedule demo with Ed Vielmetti, Packet+ARM team
● Connect with K8s Conformance SIG
● Follow-up with Chris Hoge, OpenStack
Upcoming Events
19
● February 13th, February 27th
○ CI WG Meetings
● February 26th-March 1st
○ Mobile World Congress
● March 24th-25th
○ Cross Community Infra and CICD F2F/Workshop
● March 26th-29th
○ ONS North America 2018
● May 2nd-4th
○ KubeCon CloudNativeCon Europe
Any questions?
20
Join the CNCF CI Public Discussion:
https://lists.cncf.io/g/cncf-ci-public/topics
Create issues on GitHub:
https://github.com/crosscloudci/crosscloudci/issues
Follow us on Twitter:
https://twitter.com/crosscloudci
Today’s Demo Prepared by:
denver@debian.nz
lucina@vulk.coop
taylor@vulk.coop
21

CNCF: Cross-cloud CI Dashboard v1.0.0 Release 01-26-2018

  • 1.
    Cross-cloud CI https://github.com/crosscloudci http://crosscloud.ci Demo ofCI System v2.1.0 & CI Status Dashboard v1.0.0 Friday, January 26, 2018
  • 2.
    Meet the Cross-cloudCI Team ● Denver Williams @denverwilliams ● W. Watson @wavell ● Joshua Smith @nupejosh ● Lucina Stricko @lixuna ● Taylor Carpenter @taylor ● Andre Ortiz* @andreortiz82 ● Robert Siekmann*
  • 3.
    Cross-cloud CI Intro Why?The CNCF ecosystem is large, diverse and continues to grow. CNCF would like to show the status of cross-project interoperability and cross-cloud deployments of all cloud native technologies. What? The Cross-cloud CI project encompasses pipelines for builds, provisioning, app deployments and e2e testing that continually validates the interoperability of each CNCF project, for any commit on stable and HEAD, across all supported cloud providers. The CI Status Dashboard displays the results of those tests. 3
  • 4.
    Goal: to targetall CNCF projects 4
  • 5.
    Goal: to targetall public, bare metal & private clouds 5
  • 6.
    CI Status Dashboard 6 CIDashboard v1.0.0 Release: ● Overview of cncf.ci (Production) ○ Shows status of 3 pipeline stages: Build, Provision and App Deployments ○ Refreshes at 3:00am Eastern every day ○ Supports dynamically adding/removing active clouds and projects ■ 4 active CNCF projects are displayed, 5 active clouds are displayed (AWS, Azure, GCE, GKE, Packet) ○ Clicking on Build status badge opens CI system build job URL ○ Clicking on Release Name opens project’s GitHub commit URL ○ Clicking on Deployment status badge opens “provisioning/app-deploy” job URL
  • 7.
    Live Demo: CISystem + Status Dashboard 7 Demo: CI System + Status Dashboard: ● Pre-Demo: Builds and cloud provisioning were run in advance ○ Builds for all projects currently take 15-30 minutes ○ Kubernetes provisioning of all clouds currently takes 15-30 minutes ● Live Demo: ○ Start app deployment of all active projects to the provisioned clouds ○ Take a look at the staging Gitlab app deploy pipeline view ○ Take a look at the staging CI status dashboard showing app deployments
  • 8.
    Cross-cloud CI PipelineOverview 8 ● Build (per project eg. Prometheus, Kubernetes) ● Cloud Provisioning (cross-cloud) ● App Deployment (cross-project)
  • 9.
    Build Pipeline Stages 9 1.Build: compile binaries and e2e tests 2. Package: create containers, create artifact pinning config and push to registry 3. Update-Dashboard: update build status badges
  • 10.
    Cloud Provisioning PipelineStages 10 1. Build: Prepare provisioning software from the cross-cloud project 2. Artifacts: Collect K8s artifact pinnings from the previous K8s builds 3. Cross-Cloud: Deploy K8s onto each cloud using Cross-cloud provisioner 4. Update-Dashboard: Update deployment badges
  • 11.
    App Deployment PipelineStages 11 1. Artifacts: Collect project artifact pinnings from the previous build stages 2. Cross-Project: Use Helm charts to deploy each project 3. End-to-End: Run e2e tests for each project 4. Dashboard-Update: Update deployment status badges
  • 12.
    CI System TechnologyOverview 12 • Unified CI/CD platform: Gitlab • Cross-cloud provisioning: Terraform, Cloud-init, and per cloud K8s configuration • App Deployments: K8s manifest management with Helm • E2e tests: Custom containers + Helm • Automated builds and deployments: Git + per project yaml configuration
  • 13.
    Status Dashboard TechnologyOverview 13 • Backend API: Elixir and Erlang • Frontend: Vue.js • Automated builds and deployments: Git + per project yaml configuration
  • 14.
    What’s next forCross-Cloud CI Project? 14 CI Dashboard v1.0.1 Release: ● Display ONAP project on Dashboard Overview at cncf.ci ● Prepare demo for Mobile World Congress before Feb. 23 CI System v2.1.1 Release: ● Start supporting ONAP’s MSO project on K8s running on AWS, Azure, GCE, GKE and Packet
  • 15.
    What’s next forCross-Cloud CI? 15 CI System v2.1.1 Release: ● Stretch goals for v2.1.1: ○ Add support for IBM Cloud ○ Add support for OpenStack
  • 16.
    ONAP Design Mock-up(option 1) 16
  • 17.
    ONAP Design Mock-up(option 2) 17
  • 18.
    What’s next forCross-Cloud CI Team? 18 Cross-Group Collaboration: ● Schedule demo with Erin Boyd, K8s Storage SIG ● Schedule demo with Ed Vielmetti, Packet+ARM team ● Connect with K8s Conformance SIG ● Follow-up with Chris Hoge, OpenStack
  • 19.
    Upcoming Events 19 ● February13th, February 27th ○ CI WG Meetings ● February 26th-March 1st ○ Mobile World Congress ● March 24th-25th ○ Cross Community Infra and CICD F2F/Workshop ● March 26th-29th ○ ONS North America 2018 ● May 2nd-4th ○ KubeCon CloudNativeCon Europe
  • 20.
    Any questions? 20 Join theCNCF CI Public Discussion: https://lists.cncf.io/g/cncf-ci-public/topics Create issues on GitHub: https://github.com/crosscloudci/crosscloudci/issues Follow us on Twitter: https://twitter.com/crosscloudci
  • 21.
    Today’s Demo Preparedby: denver@debian.nz lucina@vulk.coop taylor@vulk.coop 21