Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
argo-rolloutsにコミットした話
Search
TAKAyukiatkwsk
April 19, 2025
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
argo-rolloutsにコミットした話
Kanazawa.rb meetup #152 でLTしたときの資料です。
TAKAyukiatkwsk
April 19, 2025
More Decks by TAKAyukiatkwsk
See All by TAKAyukiatkwsk
自分用趣味Webアプリを育てている話
takayukiatkwsk
0
27
「技術職として歩んできた私がチーム運営を考える上で出会った2冊の本」の補足ともう1冊
takayukiatkwsk
0
83
Claude Codeと共に構成図を作る
takayukiatkwsk
0
440
EnvoyのWasm filterを体験する
takayukiatkwsk
0
88
自分用趣味アプリを作っている話
takayukiatkwsk
0
180
zoxideのご紹介
takayukiatkwsk
0
170
Kanazawa.rbに参加してからのふりかえり
takayukiatkwsk
0
100
git-secretsとgitフックをざっと理解する
takayukiatkwsk
0
480
計測プラットフォームSREチームとシステム障害対応 / measurement platform SRE team's incident response
takayukiatkwsk
0
1.4k
Other Decks in Programming
See All in Programming
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
190
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
110
Performance Optimization With LLMs
xleitix
0
210
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
280
sbt 2.0: takeoff
eed3si9n
0
170
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
250
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
150
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
160
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.8k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
180
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
11
9.3k
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
59k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
A designer walks into a library…
pauljervisheath
211
25k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Accessibility Awareness
sabderemane
1
260
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
790
Bash Introduction
62gerente
615
220k
Visualization
eitanlees
153
17k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Transcript
argo-rolloutsに コミットした話 2025-04-19 Kanazawa.rb meetup #152 Takayuki Takagi
自己紹介 • Takayuki Takagi (髙木貴之 / ニボシーニョ) • @TAKAyuki_atkwsk /
takayukiatkwsk • SRE @ ZOZO • AWS, Kubernetes, Scala, Ruby, Go, etc. • ビール、餃子、サッカー観戦が好き 2
今日の話 • argo-rolloutsというOSSにコミットした ◦ 些細な修正 • バグの発見・調査・対応の流れについて話す
argo-rolloutsについて • Kubernetesにおいて安全かつ段階的にソフトウェアをリリースす るための仕組み(コントローラー) ◦ blue-green ◦ カナリアリリース ◦ ロールアウトスピードの調整
◦ メトリクスによる続行・ロールバックの自動判断 ◦ トラフィックの重み付け (ちなみに)Kubernetes自体にもローリングアップデートを実現する仕組みはある
argo-rolloutsとの関わり • 弊チームで受け持つサービス基盤に導入済み • 導入事例についてはチームメンバーが書いた技術ブログを読んでみてくだ さい #PR ◦ Argo Rolloutsを導入してカナリアリリースを実現する
◦ https://techblog.zozo.com/entry/argo-rollouts-canary-release
簡単に説明 api:v2 api:v1 api:v2 api:v2 Datadog LB メトリクス api:v2 api:v1
api:v1 api:v1 argo- rollouts step • 25% • 50% • 100% 集計された メトリクスを取得
簡単に説明 api:v1 api:v2 api:v1 api:v2 api:v2 Datadog LB メトリクス api:v2
api:v1 api:v1 argo- rollouts step • 25% • 50% • 100% 集計された メトリクスを取得 v2でエ ラー多発
バグらしきものを見つけた • argo-rollouts v1.8.0に更新 • ロールアウトが失敗するようになった ◦ 設定は変えていない • Datadog
APIのクレデンシャルが見つけられない旨のエラーメッ セージが出力される • v1.7.xでは再現せず • バグかもしれないと疑い始める
調査 • Issueを探す ◦ 同様の事象はヒットせず • ソースコードを読む ◦ クレデンシャルを参照する処理がv1.8.0で変更されているのを発見 ◦
自分なりに原因箇所を特定 ▪ 設定関連(Secret)が怪しい • さてこの後どうするか?
対応 • 導入済みの環境について ◦ 明示的に設定項目を追加するという回避策はある ◦ が、設定方法の関係で少し冗長になる • バグを直す ◦
原因と思われる箇所を特定したので何とか直せそう ◦ 念のため詳しい人の意見も聞いておきたい • 対応方針を決めた ◦ 暫定的に設定を変えてargo-rolloutsのバージョンを上げて運用する ◦ Issueを出して適切な方策を探る
補足)原因箇所 • Datadogの設定をSecretリソースとして定義する ◦ APIに接続するための設定 • Secretを読んだあと、required設定がなされているかのチェック ◦ ここでaddressもチェックされていて、クレデンシャルが見つからな いよというエラーになっていたと考えられる
required required optional
Issue作成 • Issue作成時に目的を聞かれる • テンプレートに沿って記入 ◦ この時点では原因と思われることは記 入せず様子見 https://github.com/argoproj/argo-rollouts/issues/4103
Issueにて • コミッターからアドバイスを頂く(当日中!) • 私からの返信 ◦ アドバイスを試してみたものの挙動が変わらないことの報告 ◦ 原因と思われる箇所についてどう思うか? •
他のコミッターからのコメント ◦ 原因それやね ◦ 君が見つけたのならPull request出してみたら?と提案受ける • Pull requestを作成する流れに
Pull request作成 • 作成前にCONTRIBUTING.mdを読む • 該当箇所の修正 + ユニットテストの追加 • Pull
request作成 ◦ テンプレート内にチェックリストがあるので対応する
https://github.com/argoproj/argo-rollouts/pull/4145
まとめ • 無事にマージされ、v1.8.1としてリ リースされた • 手続きに沿いながら解決できてよ かった • 初のコミットだったものの、コミッ ターからアドバイス等いただけて安
心した