bug(repo-server): update-ca-certificates init container does not inherit spec.repo.resources
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- go, kubernetes
- Ambito
- infrastructure
Direzione di ricerca
Il bug si trova in controllers/argocd/openshift/openshift.go, in updateSystemCATrustBuilding(), dove l'init container update-ca-certificates viene costruito senza un campo Resources. Confrontalo con il modo in cui l'init container copyutil riceve spec.repo.resources, e verifica getArgoRepoResources(cr) nel reconciler upstream. È completato quando il container update-ca-certificates ha gli stessi requests e limits di spec.repo.resources, cosa che puoi confermare con il comando jq del passaggio 3.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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-----..."
2. Deploy an ArgoCD instance with spec.repo.resources and spec.repo.systemCATrust
```yaml
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:
```json
{
"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:
```go
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).
- Lingua principale
- Go
- Stelle
- 188
- Fork
- 362
- Merge medio
- 5g 4h
- PR unite (30g)
- 27
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di redhat-developer/gitops-operator
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
redhat-developer/gitops-operator#1287 ·
I maintainer di solito rispondono entro 2 giorni
-
Secret-looking text in log output, ci logs redactedForse già presa @olivergondza l’ha presa 8 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
redhat-developer/gitops-operator#1311 ·
I maintainer di solito rispondono entro 2 giorni
-
Harden OpenShift manual-install SCC troubleshooting guidanceForse di nuovo libera @olivergondza l’ha presa 28 giorni fa e non c’è nessuna pull request aperta. Aperta
redhat-developer/gitops-operator#1295 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
redhat-developer/gitops-operator#634 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
NodePlacement or Toleration/NodeSelector not workingForse già presa @Pratik-Redhat-Tech l’ha presa 38 giorni fa. Apertatriage:required
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
redhat-developer/gitops-operator#572 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di redhat-developer/gitops-operator
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Add SolentaForse già presa @sharmao07 l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
slavakurilyak/awesome-ai-agents#760 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
-
agent-review-finding bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
jordansmall/spindrift#5281 ·
I maintainer di solito rispondono entro 1 giorno