Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
argo-rolloutsにコミットした話
Search
TAKAyukiatkwsk
April 19, 2025
Programming
95
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
15
「技術職として歩んできた私がチーム運営を考える上で出会った2冊の本」の補足ともう1冊
takayukiatkwsk
0
61
Claude Codeと共に構成図を作る
takayukiatkwsk
0
300
EnvoyのWasm filterを体験する
takayukiatkwsk
0
81
自分用趣味アプリを作っている話
takayukiatkwsk
0
160
zoxideのご紹介
takayukiatkwsk
0
140
Kanazawa.rbに参加してからのふりかえり
takayukiatkwsk
0
86
git-secretsとgitフックをざっと理解する
takayukiatkwsk
0
420
計測プラットフォームSREチームとシステム障害対応 / measurement platform SRE team's incident response
takayukiatkwsk
0
1.3k
Other Decks in Programming
See All in Programming
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
550
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
180
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
300
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
560
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
RTSPクライアントを自作してみた話
simotin13
0
620
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
140
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
210
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
210
Featured
See All Featured
BBQ
matthewcrist
89
10k
Color Theory Basics | Prateek | Gurzu
gurzu
0
370
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Marketing to machines
jonoalderson
1
5.5k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
200
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
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としてリ リースされた • 手続きに沿いながら解決できてよ かった • 初のコミットだったものの、コミッ ターからアドバイス等いただけて安
心した