From 0dced3f8d35ac3ce447af50882f6df00ae68e9fd Mon Sep 17 00:00:00 2001 From: Kieran Colford Date: Tue, 1 Oct 2024 11:07:12 -0400 Subject: [PATCH] Allow specifying default UID for dashboards --- api/v1beta1/grafanadashboard_types.go | 4 ++++ controllers/dashboard_controller.go | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/api/v1beta1/grafanadashboard_types.go b/api/v1beta1/grafanadashboard_types.go index 2d6922f46..4cd019201 100644 --- a/api/v1beta1/grafanadashboard_types.go +++ b/api/v1beta1/grafanadashboard_types.go @@ -128,6 +128,10 @@ type GrafanaDashboardSpec struct { // +optional Datasources []GrafanaDashboardDatasource `json:"datasources,omitempty"` + // Allows specifying the UID of a dashboard if one is not provided, defaults to metadata.uid + // +optional + DefaultUID *string `json:"defaultUID,omitempty"` + // allow to import this resources from an operator in a different namespace // +optional AllowCrossNamespaceImport *bool `json:"allowCrossNamespaceImport,omitempty"` diff --git a/controllers/dashboard_controller.go b/controllers/dashboard_controller.go index 45ad774ba..90e769d27 100644 --- a/controllers/dashboard_controller.go +++ b/controllers/dashboard_controller.go @@ -580,7 +580,11 @@ func (r *GrafanaDashboardReconciler) getDashboardModel(cr *v1beta1.GrafanaDashbo uid, _ := dashboardModel["uid"].(string) //nolint:errcheck if uid == "" { - uid = string(cr.UID) + if cr.Spec.DefaultUID != nil && *cr.Spec.DefaultUID != "" { + uid = *cr.Spec.DefaultUID + } else { + uid = string(cr.UID) + } } dashboardModel["uid"] = uid