-
Bug
-
Resolution: Unresolved
-
Critical
-
None
-
None
-
None
-
Incidents & Support
-
False
-
-
False
-
-
-
Important
-
None
Description of problem:
When creating an application from the user console, it takes about 3 minutes before the actual Application.argoproj.io resource is created and ArgoCD start deploying the application. This happens when the ApplicationSet and Placement resource are created at the same time (see debug output below).
This long delay gives a bad user experience to customers who are trying out the solution, running tests, or watching a demo.
Version-Release number of selected component (if applicable):
OCP 4.19.1
ACM 2.14.1
OpenShift GitOps 1.18.1 (Argo v3.1.8)
How reproducible:
100%
Steps to Reproduce:
- Go to the user console, create an application using "Argo CD Applicationset - Push model"
- Give it a name, select an Argo server
- Set Requeue time to 30 seconds (it doesn't influence the 3 minute delay)
- Use any application in git (for example https://github.com/red-hat-storage/ocm-ramen-samples, main branch path workloads/deployment/odr-metro-dr)
- Create a new placement, select a ClusterSet, and use a label selector to select one cluster
- Monitor the creation of application.argoproj.io
Actual results:
It takes exactly three minutes before this resource is created.
Expected results:
The application.argoproj.io to be created in a few seconds.
Additional info:
The Placement and PlacementDecision resources are created immediately:
% oc get placement myapp-placement -o yaml | grep creationTime creationTimestamp: "2025-12-05T15:16:50Z" % oc get placementdecision myapp-placement-decision-1 -o yaml | grep creationTime creationTimestamp: "2025-12-05T15:16:50Z"
from the placement controller logs:
I1205 15:16:50.775298 1 event_broadcaster.go:338] "Event occurred" object="openshift-gitops/myapp-placement" kind="Placement" apiVersion="cluster.open-cluster-management.io/v1beta1" type="Normal" reason="DecisionCreate" action="DecisionCreated" note="Decision myapp-placement-decision-1 is created with placement myapp-placement in namespace openshift-gitops" I1205 15:16:50.794774 1 event_broadcaster.go:338] "Event occurred" object="openshift-gitops/myapp-placement" kind="Placement" apiVersion="cluster.open-cluster-management.io/v1beta1" type="Normal" reason="DecisionUpdate" action="DecisionUpdated" note="Decision myapp-placement-decision-1 is updated with placement myapp-placement in namespace openshift-gitops" I1205 15:16:50.794830 1 event_broadcaster.go:338] "Event occurred" object="openshift-gitops/myapp-placement" kind="Placement" apiVersion="cluster.open-cluster-management.io/v1beta1" type="Normal" reason="ScoreUpdate" action="ScoreUpdated" note="metrodr1:30 "
The ApplicationSet controller just throws an error that it cannot find the clusterDecisionResources. This might be a race condition with the placement controller.
time="2025-12-05T15:16:50Z" level=error msg="error generating params" error="no clusterDecisionResources found" generator="&{{{}} 0xc0012c5680 0xc00170b340 openshift-gitops}" time="2025-12-05T15:16:50Z" level=error msg="error generating application from params" applicationset=openshift-gitops/myapp error="no clusterDecisionResources found" generator="{nil nil nil nil &DuckTypeGenerator{ConfigMapRef:acm-placement,Name:,RequeueAfterSeconds:*30,LabelSelector:{map[cluster.open-cluster-management.io/placement:myapp-placement] []},Template:ApplicationSetTemplate{ApplicationSetTemplateMeta:ApplicationSetTemplateMeta{Name:,Namespace:,Labels:map[string]string{},Annotations:map[string]string{},Finalizers:[],},Spec:ApplicationSpec{Source:nil,Destination:ApplicationDestination{Server:,Namespace:,Name:,},Project:,SyncPolicy:nil,IgnoreDifferences:[]ResourceIgnoreDifferences{},Info:[]Info{},RevisionHistoryLimit:nil,Sources:[]ApplicationSource{},SourceHydrator:nil,},},Values:map[string]string{},} nil nil nil nil nil}" time="2025-12-05T15:16:50Z" level=error msg="unable to generate applications: no clusterDecisionResources found" applicationset=openshift-gitops/myapp
Three minutes later, the Application is created:
time="2025-12-05T15:19:50Z" level=info msg="Kind.Group/Version Reference" kind.apiVersion=placementdecisions.cluster.open-cluster-management.io/v1beta1 time="2025-12-05T15:19:50Z" level=info msg="selection type" listOptions.LabelSelector="cluster.open-cluster-management.io/placement=myapp-placement" time="2025-12-05T15:19:50Z" level=info msg="Number of decisions found: 1"
Simply annotating the ApplicationSet after it was created triggers a reconciliation
% kubectl annotate applicationset test -n openshift-gitops "force-refresh=$(date +%s)" --overwrite