@@ -361,9 +361,36 @@ func (p *Plugin) DetermineVersions(ctx context.Context, _ *sdk.ConfigNone, _ *sd
361
361
}, nil
362
362
}
363
363
364
- // FIXME
365
- func (p * Plugin ) DetermineStrategy (context.Context , * sdk.ConfigNone , * sdk.Client , * sdk.DetermineStrategyInput ) (* sdk.DetermineStrategyResponse , error ) {
366
- return & sdk.DetermineStrategyResponse {}, nil
364
+ func (p * Plugin ) DetermineStrategy (ctx context.Context , _ * sdk.ConfigNone , _ * sdk.Client , input * sdk.DetermineStrategyInput ) (* sdk.DetermineStrategyResponse , error ) {
365
+ logger := input .Logger
366
+ loader := provider .NewLoader (toolregistry .NewRegistry (input .Client .ToolRegistry ()))
367
+
368
+ cfg , err := config.DecodeYAML [* kubeconfig.KubernetesApplicationSpec ](input .Request .TargetDeploymentSource .ApplicationConfig )
369
+ if err != nil {
370
+ logger .Error ("Failed while decoding application config" , zap .Error (err ))
371
+ return nil , err
372
+ }
373
+
374
+ runnings , err := p .loadManifests (ctx , & input .Request .Deployment , cfg .Spec , & input .Request .RunningDeploymentSource , loader )
375
+
376
+ if err != nil {
377
+ logger .Error ("Failed while loading running manifests" , zap .Error (err ))
378
+ return nil , err
379
+ }
380
+
381
+ targets , err := p .loadManifests (ctx , & input .Request .Deployment , cfg .Spec , & input .Request .TargetDeploymentSource , loader )
382
+
383
+ if err != nil {
384
+ logger .Error ("Failed while loading target manifests" , zap .Error (err ))
385
+ return nil , err
386
+ }
387
+
388
+ strategy , summary := determineStrategySDK (runnings , targets , cfg .Spec .Workloads , logger )
389
+
390
+ return & sdk.DetermineStrategyResponse {
391
+ Strategy : strategy ,
392
+ Summary : summary ,
393
+ }, nil
367
394
}
368
395
369
396
func (p * Plugin ) BuildQuickSyncStages (ctx context.Context , _ * sdk.ConfigNone , input * sdk.BuildQuickSyncStagesInput ) (* sdk.BuildQuickSyncStagesResponse , error ) {
0 commit comments