[Feature Request] Option to not propagate the Connection credential into worker pods / separate controller and worker credentials
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
Línea de trabajo
Start at ApplyControllerPodSpecModifications and the deployment builder call mentioned in the issue, then trace how workerOptions.connectionRef supplies credentials to controller management calls and worker pods. Compare the Secret mount and environment variable paths for mTLS and API keys. Done when a documented option or separate references let controller management and worker runtime use distinct credentials, with the resulting pod configuration covered.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Is your feature request related to a problem? Please describe.
For a given WorkerDeployment, the controller resolves the Connection via
workerOptions.connectionRef and uses that credential for its OWN management calls
(SetWorkerDeploymentCurrentVersion / SetWorkerDeploymentRampingVersion /
DeleteWorkerDeploymentVersion — all AccessWrite). It then mounts the SAME
mutualTLSSecretRef Secret (tls.crt / tls.key) into the generated worker pods and sets
TEMPORAL_TLS_CLIENT_* (via ApplyControllerPodSpecModifications, called unconditionally).
When Temporal authorization is enabled, the controller needs namespace write (versioning /
routing). Because the worker pods inherit the SAME Connection credential, the application code
running inside the worker pod can read a client certificate that carries namespace-write, and
can therefore act on any workflow in that Temporal namespace — more than a worker needs, and the
credential is exposed to arbitrary application code in the pod. This breaks least-privilege: the
controller's management identity and the workers' runtime identity are the same.
Describe the solution you'd like
A way to give the controller a management credential distinct from what is mounted into the
worker pods, within a single WorkerDeployment. For example, any of:
- an option to disable propagation of the
ConnectionSecret into worker pods (e.g. when the
worker supplies its own credential out-of-band); - a separate
controllerConnectionRef(controller management) vsworkerConnectionRef(mounted
into worker pods), so the two identities/permissions can differ; - documented guidance that the intended isolation unit is "one Temporal namespace + one
Connection per workload", if finer separation is out of scope.
Additional context
- Chart / controller version:
0.32.0(appVersion1.13.0). - Source references:
ApplyControllerPodSpecModifications(mountsmutualTLSSecretRef+
TEMPORAL_TLS_CLIENT_*into worker containers) is called unconditionally from the deployment
builder; the controller client and the worker pods use the sameConnection. - Observed with
requireClientAuth+ JWT authorization enabled on the frontend; the concern also
applies to theapiKeySecretRefpath (the API key is injected into the worker pod as
TEMPORAL_API_KEY). - Related: this is the same
Connectionauth-model surface as the mTLS+bearer feature request
above; they may be considered together.
- Lenguaje dominante
- Go
- Estrellas
- 197
- Forks
- 79
- Merge medio
- 3 d 13 h
- PR fusionados (30 d)
- 25
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de temporalio/temporal-worker-controller
-
[Feature Request] Helm chart: support topologySpreadConstraints on the controller DeploymentPosiblemente ocupada @akolacz la tomó hace 3 días. Abiertohelm
temporalio/temporal-worker-controller#658 · 1 reacción · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Bug] With a pinned build ID, the controller keeps updating the Deployment after a template changePosiblemente ocupada @D-Joey-G la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 58/100
temporalio/temporal-worker-controller#656 ·
Los mantenedores suelen responder en 1 día
-
rbac
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
temporalio/temporal-worker-controller#654 ·
Los mantenedores suelen responder en 1 día
-
Bug: v1.6's delete-protection finalizer is never removed from migrated TemporalWorkerDeployment/TemporalConnection, so they stay Terminating after the v1.7 migrationPosiblemente ocupada @niyomukiza-mechack la tomó hace 10 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 57/100
temporalio/temporal-worker-controller#644 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
AI agent skillsAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
temporalio/temporal-worker-controller#633 · 1 reacción ·
Los mantenedores suelen responder en 1 día
Todos los issues de temporalio/temporal-worker-controller
Issues similares
-
native
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
prime-radiant-inc/evener#4839 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
521xueweihan/HelloGitHub#4073 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
goharbor/terraform-provider-harbor#655 · 1 comentario ·
-
bug needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
syncthing/syncthing#10935 · 1 comentario ·
Los mantenedores suelen responder en 1 día