bug(repo-server): update-ca-certificates init container does not inherit spec.repo.resources
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 75/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- go, kubernetes
- Área
- infrastructure
Línea de trabajo
El error está en controllers/argocd/openshift/openshift.go, en updateSystemCATrustBuilding(), donde el init container update-ca-certificates se construye sin un campo Resources. Compáralo con la forma en que el init container copyutil recibe spec.repo.resources, y revisa getArgoRepoResources(cr) en el reconciler upstream. Está terminado cuando el contenedor update-ca-certificates tenga los mismos requests y limits que spec.repo.resources, lo que puedes confirmar con el comando jq del paso 3.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
When configuring custom CA trust via spec.repo.systemCATrust on an ArgoCD resource, the operator injects an init container named update-ca-certificates into the argocd-repo-server pod. However, this init container is created with empty compute resources (resources: {}), even when spec.repo.resources (requests and limits) is explicitly defined in the CR.
This causes pod admission failures in namespaces governed by strict ResourceQuota policies requiring explicit CPU/memory requests and limits.
To Reproduce
Steps to reproduce the behavior:
- Create a namespace and a ConfigMap containing a custom CA certificate:
oc create configmap custom-ca --from-literal=ca.crt="-----BEGIN CERTIFICATE-----..."
- Deploy an ArgoCD instance with spec.repo.resources and spec.repo.systemCATrust
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
name: argocd-sample
spec:
repo:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
systemCATrust:
configMaps:
- name: custom-ca
- inspect the resulting repo-server deployment's init containers
oc get deployment argocd-sample-repo-server -o json | jq '.spec.template.spec.initContainers[] | {name: .name, resources: .resources}'
4, See error/output:
{
"name": "copyutil",
"resources": {
"limits": { "cpu": "500m", "memory": "512Mi" },
"requests": { "cpu": "100m", "memory": "128Mi" }
}
}
{
"name": "update-ca-certificates",
"resources": {}
}
Expected behavior The update-ca-certificates init container should inherit spec.repo.resources (requests and limits) identically to how copyutil inherits them and how upstream argocd-operator implements it via getArgoRepoResources(cr).
Screenshots N/A
Additional context
Root cause: In PR #987 (controllers/argocd/openshift/openshift.go), the downstream reconciler hook updateSystemCATrustBuilding() drops the upstream update-ca-certificates container to replace it with a RHEL-native container, but omits setting Resources on the new corev1.Container definition:
initContainer := corev1.Container{
Name: "update-ca-certificates",
Image: prodImage,
SecurityContext: argoutil.DefaultSecurityContext(),
VolumeMounts: ...,
Command: ...,
Args: ...,
// Missing: Resources field
}
Impact:
In environments with a ResourceQuota requiring resource limits/requests, the API server rejects pod creation with: failed quota: ...: must specify limits.cpu,limits.memory,requests.cpu,requests.memory for: update-ca-certificates.
Environment: Reproduced on OpenShift GitOps Operator v1.22.1 (introduced in v1.20.0 with PR #987).
- Lenguaje dominante
- Go
- Estrellas
- 188
- Forks
- 362
- Merge medio
- 6 d 5 h
- PR fusionados (30 d)
- 44
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 redhat-developer/gitops-operator
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
redhat-developer/gitops-operator#1287 ·
Los mantenedores suelen responder en 1 día
-
Harden OpenShift manual-install SCC troubleshooting guidanceQuizá libre de nuevo @olivergondza la tomó hace 29 días y no hay ningún pull request abierto. Abierto
redhat-developer/gitops-operator#1295 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
redhat-developer/gitops-operator#634 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
NodePlacement or Toleration/NodeSelector not workingPosiblemente ocupada @Pratik-Redhat-Tech la tomó hace 39 días. Abiertotriage:required
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
redhat-developer/gitops-operator#572 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de redhat-developer/gitops-operator
Issues similares
-
bug performance scalability
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Davidjustice28/basildb#35 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rhysd/actionlint#761 ·
-
bug needs-triage P2 tier:1-mechanical
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
krakenhavoc/cmd_and_ctrl#3652 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
puppe1990/amarra-cais#345 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
limitlessprojects/Go-Hybrid#50 ·
Los mantenedores suelen responder en 1 día