@@ -171,16 +171,27 @@ func buildAPIHandler(cfg *Config, db *sql.DB, pm *ProcessManager) http.Handler {
171171 return
172172 }
173173 w .Header ().Set ("Cache-Control" , "no-store" )
174- ready := pm .isReady ()
174+ ready , reconcile , plugins := pm .readinessReconcileSnapshot ()
175175 statusCode := http .StatusServiceUnavailable
176176 status := "starting"
177177 if ready {
178178 statusCode = http .StatusOK
179179 status = "ready"
180+ } else if reconcile .Status == "error" || plugins .Status == "error" {
181+ status = "error"
182+ } else if reconcile .Status == "pending" {
183+ status = "reconciling"
180184 }
181185 writeJSON (w , statusCode , map [string ]interface {}{
182186 "status" : status ,
183187 "ready" : ready ,
188+ "dataplane" : map [string ]interface {}{
189+ "status" : reconcile .Status ,
190+ "desired_generation" : reconcile .DesiredGeneration ,
191+ "applied_generation" : reconcile .AppliedGeneration ,
192+ "pending_generations" : reconcile .PendingGenerations ,
193+ },
194+ "plugins" : map [string ]string {"status" : plugins .Status },
184195 })
185196 })
186197 mux .HandleFunc ("/metrics" , authMiddleware (cfg , func (w http.ResponseWriter , r * http.Request ) {
@@ -2548,8 +2559,12 @@ func handleListWorkers(w http.ResponseWriter, r *http.Request, db *sql.DB, pm *P
25482559 kernelRuleIDs := make (map [int64 ]bool )
25492560 kernelRangeIDs := make (map [int64 ]bool )
25502561 kernelBinaryHash := ""
2562+ var dataplaneStatus DataplaneReconcileStatus
2563+ var pluginStatus PluginReconcileStatus
25512564 needsSharedSiteCount := false
25522565 pm .mu .Lock ()
2566+ dataplaneStatus = pm .dataplaneReconcileStatusLocked ()
2567+ pluginStatus = pm .pluginReconcileStatusLocked ()
25532568 for id := range pm .kernelRules {
25542569 kernelRuleIDs [id ] = true
25552570 }
@@ -2973,6 +2988,8 @@ func handleListWorkers(w http.ResponseWriter, r *http.Request, db *sql.DB, pm *P
29732988 PageSize : pageSize ,
29742989 Total : total ,
29752990 BinaryHash : kernelBinaryHash ,
2991+ Dataplane : dataplaneStatus ,
2992+ Plugins : pluginStatus ,
29762993 Workers : out ,
29772994 }
29782995 writeJSON (w , http .StatusOK , resp )
0 commit comments