FindReferencingConfigMaps and FindReferencingSecrets miss CronJob references

Abierto Apto para principiantes
#6,761 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@Ankitdotraider ya está trabajando en esto.

Desde el 15/7/2026.

  • #6762 de @Ram04102007 — cerrado sin fusionar
  • #7030 de @Ankitdotraider — cerrado sin fusionar

Evaluación

Dificultad
2/5
Tiempo estimado
1-2 días
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
go, kubernetes

Línea de trabajo

Busca FindReferencingConfigMaps y FindReferencingSecrets en los paquetes provider kubernetes y kubernetes_multicluster, y luego compara sus probes nestedStringSlice existentes para plantillas de pods. Añade probes equivalentes para los paths de jobTemplate de CronJob indicados en el issue y verifica que se encuentren las referencias a ConfigMap y Secret desde volúmenes, contenedores y contenedores init.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

What's the problem

While looking at the code after #6528 was fixed, I noticed that
FindReferencingConfigMaps and FindReferencingSecrets have the same
gap — they don't handle CronJobs.

Both functions only look through spec.template.spec.*, which works
for Deployments, StatefulSets, and DaemonSets. But CronJobs put their
pod template under spec.jobTemplate.spec.template.spec.*, so any
ConfigMap or Secret referenced inside a CronJob is completely invisible
to these functions.

What breaks

If a CronJob mounts a ConfigMap as a volume or pulls credentials from a
Secret via env, PipeCD won't know about it. That means drift detection
won't catch config changes, and re-deploys won't be triggered when those
configs change.

Paths that are currently missed

FindReferencingConfigMaps:

  • spec.jobTemplate.spec.template.spec.volumes.configMap.name
  • spec.jobTemplate.spec.template.spec.containers.env.valueFrom.configMapKeyRef.name
  • spec.jobTemplate.spec.template.spec.containers.envFrom.configMapRef.name
  • spec.jobTemplate.spec.template.spec.initContainers.env.valueFrom.configMapKeyRef.name
  • spec.jobTemplate.spec.template.spec.initContainers.envFrom.configMapRef.name

FindReferencingSecrets:

  • spec.jobTemplate.spec.template.spec.volumes.secret.secretName
  • spec.jobTemplate.spec.template.spec.containers.env.valueFrom.secretKeyRef.name
  • spec.jobTemplate.spec.template.spec.containers.envFrom.secretRef.name
  • spec.jobTemplate.spec.template.spec.initContainers.env.valueFrom.secretKeyRef.name
  • spec.jobTemplate.spec.template.spec.initContainers.envFrom.secretRef.name

The fix is straightforward — add the missing nestedStringSlice probes
for the jobTemplate paths, same pattern already used for the existing paths.

Affects both kubernetes and kubernetes_multicluster provider packages.

Lenguaje dominante
Go
Estrellas
1.4k
Forks
391
Merge medio
4 d 1 h
PR fusionados (30 d)
58

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pipe-cd/pipecd

Todos los issues de pipe-cd/pipecd

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.