Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Bug] With a pinned build ID, the controller keeps updating the Deployment after a template change

オープン
#656 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
58/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
go, kubernetes

調査の方向性

Read internal/k8s/deployments.go around NewDeploymentWithOwnerRef and internal/planner/planner.go around checkAndUpdateDeploymentPodTemplateSpec and updateDeploymentWithPodTemplateSpec. Reproduce the issue by running the unit test mentioned in the report and calling the check again after an update. Done means the template hash uses consistent inputs so the second check no longer returns the Deployment for an unchanged spec.

索引モデルが issue の本文から書いたものです。

説明

bug
What are you really trying to do?

Change a pod template field on a WorkerDeployment that pins unsafeCustomBuildID and have it applied in place to the already-deployed version.

Describe the bug

The first update applies correctly, but then the controller detects drift on every reconcile and re-updates the same Deployment (~every 10s) until the spec changes.

The temporal.io/pod-template-spec-hash annotation is produced by hashing different inputs during creation vs update.

The impact is small. In my repro, the Deployment generation stayed constant across the updates without pod restarts, so the repeats are server-side no-ops. The cost is just an API write + a logline per reocncile per deployment.

Minimal Reproduction
  1. Create a WorkerDeployment with unsafeCustomBuildID: stable
  2. Change any pod template field
  3. Watch the controller log: "updating deployment" indefinitely

Can also be seen via a unit test: run checkAndUpdateDeploymentPodTemplateSpec again after an update and it will return the Deployment again.

Environment/Versions
  • temporal-worker-controller main at 8ece977
Additional context

I have a fix ready: hash the template before applying the controller. Happy to open a PR for this!

主要言語
Go
スター
197
フォーク
79
平均マージ
3日 4時間
マージ済み PR(30日)
23

環境構築

  • Dockerfile または Docker Compose ファイルあり
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

temporalio/temporal-worker-controller のほかの issue

temporalio/temporal-worker-controller の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。