PTLのお仕事とリリースパイプラインの裏側
- 2. 2Copyright©2019 NTT Corp. All Rights Reserved.
⾃⼰紹介
• 室井 雅仁 (むろい まさひと)
• IRC: masahito
• OpenStack コミュニティ役職
• Blazar Core Reviewer (元PTL)
• Congress Core Reviewer
• 発表・投稿履歴
• OpenStack Summit 8 件 (2013件~)
• https://www.openstack.org/videos/search?search=muroi
• OPNFV Summit 1 件
• https://youtu.be/qV4eLhsFR28
• ThinkIT 記事 (Summit 速報記事)
• https://thinkit.co.jp/author/8439
• @IT (OpenStack 使い⽅のコツ)
• http://www.atmarkit.co.jp/ait/articles/1509/17/news006.html
- 3. 3Copyright©2019 NTT Corp. All Rights Reserved.
Project Team Lead
• OpenStack プロジェクトの代表
• Technical Committee や別グループとのコンタクトポイント
• リリースサイクルごとに⽴候補形式の選挙制
• 最近は 2~4 サイクルごとの交代が多くなってきた
• 主な役割
• 開発ロードマップの作成
• 開発者ミーティング (PTG) の議⻑・司会進⾏
• 公式リリースの作成
• 新規 Core Reviewer の推薦
• プロジェクト管理の雑務全般
パッチ作成 パッチ作成 パッチ作成
パッチレビューパッチレビュー
コミュニティ運営
PTL
Core Reviewer
⼀般コントリビュータ
- 4. 4Copyright©2019 NTT Corp. All Rights Reserved.
OpenStack のリリースモデル
master branch
2.0.0.0b3
2.0.0.0rc1, 2.0.0
2.0.1
stable/rocky branch
開発 milestone は tag で対応
rc1 tag を起点として stable branch を作成
release tag は、最新 rc へ設定
bug fix のバックポートがあった場合、
マイナーバージョンアップアップした tagを作成
- 5. 5Copyright©2019 NTT Corp. All Rights Reserved.
OpenStackプロジェクトのリリース作業
release リポジトリ内のファイルに
release tag の Commit ID を記述するだけ! 簡単!!
branch 作成は起点となる tag を指定するだけ
releases/deliverables/rocky/blazar.yaml
- 6. 6Copyright©2019 NTT Corp. All Rights Reserved.
リリースフロー全体像
releases blazar
リリースパッチ投稿
パッチレビュー
Gerrit
2. release tag 付与
1. update trigger
3. tag 更新 trigger
4. build & upload package
PTL
Release team
- 7. 7Copyright©2019 NTT Corp. All Rights Reserved.
Zuul
• CI/CD (delivery & deployment) system
• プロジェクト (git リポジトリ) をまたがったパッチの依存関係を考慮した CI/CD が可能
であることが特徴
• patch A for X repository depends on patch B for Y repository
• リポジトリの特定のイベントに pipeline を定義、プロジェクトごとに pipeline の実⾏
job を設定
• Gerrit, Github などの配下のプロジェクトを管理可能
• OpenStack Foundation 配下のプロジェクト
• https://zuul-ci.org/docs/zuul/
• Zuul の詳細はこの後のセッション
「ZuulとOpenStackで作る気の利いたCI環境 」 で!
- 8. 8Copyright©2019 NTT Corp. All Rights Reserved.
リリースパッチのマージから tag の付与まで
• openstack/releasesリポジトリの更新を契機に、追加
された tag の情報を、対象のリポジトリへ反映
• refs/heads/* の更新が実⾏契機
releases blazar
Gerrit
update trigger release tag 付与
openstack/releases/.zuul.yaml
openstack/project-config/zuul.d/jobs.yaml
openstack/project-config/playbooks/release/tag.yaml
- 9. 9Copyright©2019 NTT Corp. All Rights Reserved.
tag の付与から pypi へのアップロード
• プロジェクトリポジトリへの tag 追加を契機に、パッ
ケージングと pypi へのアップロードを実施
• プロジェクトリポジトリの refs/tag
blazar
Gerrit tag 更新 trigger builds and uploads package
openstack/project-config/zuul.d/projects.yaml
openstack/openstack-zuul-jobs/zuul.d/project-templates.yaml
openstack/project-config/zuul.d/jobs.yaml
zuul/zuul-jobs/roles/build-python-release/task/main.yaml
- 10. 10Copyright©2019 NTT Corp. All Rights Reserved.
FAQ.1
Q. 簡単と⾔ってるけどリリースノートの作成とか、総合したら⾯倒なんじゃ
ない?
A. リリースノートなども release tag の設定を契機にすべて⾃動化されてい
ます
release team がめっちゃ頑張ってくれています、感謝
詳しくは “openstack reno” で検索してみてください
- 11. 11Copyright©2019 NTT Corp. All Rights Reserved.
FAQ.2
Q. zuul の job や template がどこに定義されているか分かりづらい
A. 私もそう思います。
次のくくりで覚えて grep して検索しています。
• openstack/project-config, openstack/openstack-zuul-jobs
• OpenStack に特化した job や template
• tempest のテスト, API リファレンスやリリースノートのビルドなど
• zuul/zuul-base-jobs, zuul/zuul-jobs
• ⼀般的な job
• pypi upload など
- 12. 12Copyright©2019 NTT Corp. All Rights Reserved.
まとめ
• PTL の仕事はいろいろあります
• OpenStack のリリース作業は超簡単
• リリース作業も git 管理のためリリーストラッキングも簡単
• Zuul の pipeline 機能便利
• ぜひ皆様も CI/CD に導⼊してみてはいかがでしょうか