Slight refactor of Zanzana GRPC Client to use it in the IAM Folder Operator (#110120)
This commit is contained in:
+17
-4
@@ -9,21 +9,34 @@ import (
|
||||
"github.com/grafana/grafana-app-sdk/simple"
|
||||
foldersKind "github.com/grafana/grafana/apps/folder/pkg/apis/folder/v1beta1"
|
||||
"github.com/grafana/grafana/apps/iam/pkg/reconcilers"
|
||||
"github.com/grafana/grafana/pkg/services/authz"
|
||||
)
|
||||
|
||||
type AppConfig = reconcilers.AppConfig
|
||||
|
||||
var appManifestData = app.ManifestData{
|
||||
AppName: "iam-folder-reconciler",
|
||||
Group: "iam.grafana.app",
|
||||
}
|
||||
|
||||
func Provider(appCfg AppConfig) app.Provider {
|
||||
type AppConfig struct {
|
||||
ZanzanaCfg authz.ZanzanaClientConfig
|
||||
FolderReconcilerNamespace string
|
||||
}
|
||||
|
||||
func Provider(appCfg app.SpecificConfig) app.Provider {
|
||||
return simple.NewAppProvider(app.NewEmbeddedManifest(appManifestData), appCfg, New)
|
||||
}
|
||||
|
||||
func New(cfg app.Config) (app.App, error) {
|
||||
folderReconciler, err := reconcilers.NewFolderReconciler(cfg)
|
||||
appSpecificConfig, ok := cfg.SpecificConfig.(AppConfig)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("invalid config type: expected AppConfig, got %T", cfg.SpecificConfig)
|
||||
}
|
||||
|
||||
folderReconciler, err := reconcilers.NewFolderReconciler(reconcilers.ReconcilerConfig{
|
||||
ZanzanaCfg: appSpecificConfig.ZanzanaCfg,
|
||||
KubeConfig: &cfg.KubeConfig,
|
||||
FolderReconcilerNamespace: appSpecificConfig.FolderReconcilerNamespace,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to create FolderReconciler: %w", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user