bug(repo-server): update-ca-certificates init container does not inherit spec.repo.resources
Maintainer thường phản hồi trong vòng 1 ngày
@olivergondza đang làm issue này rồi.
Từ ngày 13/10/2026.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 75/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- go, kubernetes
- Lĩnh vực
- infrastructure
Hướng nghiên cứu
Lỗi nằm trong controllers/argocd/openshift/openshift.go, trong updateSystemCATrustBuilding(), nơi init container update-ca-certificates được tạo mà không có trường Resources. Hãy so sánh với cách init container copyutil nhận spec.repo.resources, và kiểm tra getArgoRepoResources(cr) trong reconciler upstream. Công việc hoàn thành khi container update-ca-certificates có cùng requests và limits với spec.repo.resources, bạn có thể xác nhận bằng lệnh jq ở bước 3.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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).
- Ngôn ngữ chính
- Go
- Star
- 188
- Fork
- 362
- Merge trung bình
- 6 ngày 5 giờ
- Pull request đã merge (30 ngày)
- 44
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của redhat-developer/gitops-operator
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 86/100
redhat-developer/gitops-operator#1287 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Harden OpenShift manual-install SCC troubleshooting guidanceCó thể làm lại được @olivergondza đã nhận 28 ngày trước và không có pull request nào đang mở. Đang mở
redhat-developer/gitops-operator#1295 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
redhat-developer/gitops-operator#634 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
NodePlacement or Toleration/NodeSelector not workingCó thể đã có người làm @Pratik-Redhat-Tech đã nhận 38 ngày trước. Đang mởtriage:required
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
redhat-developer/gitops-operator#572 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của redhat-developer/gitops-operator
Issue tương tự
-
component/gpu-kubelet-plugin component/helm needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
kubernetes-sigs/dra-driver-nvidia-gpu#1559 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
TOTP enrollment returns 500 for phone-only users (empty TOTP account name)Có thể đã có người làm @emiliosandoval4 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
Maintainer thường phản hồi trong vòng 1 ngày
-
8.9 to 8.10 Helm upgrade guide still says deprecated keys are removed in chart v16 (Camunda 8.11)Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
camunda/camunda-platform-helm#7559 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs: namespaceRegexes example teaches prefix matching, but regexes are matched as a substringCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởtriage/pending-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
external-secrets/external-secrets#7117 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ENTERPILOT/GoModel#1183 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày