@@ -189,8 +189,37 @@ func (d *defaultManager) RunWorkload(ctx context.Context, runConfig *runner.RunC
189
189
return err
190
190
}
191
191
192
+ func validateSecretParameters (ctx context.Context , runConfig * runner.RunConfig ) error {
193
+ // If there are run secrets, validate them
194
+ if len (runConfig .Secrets ) > 0 {
195
+ cfg := config .GetConfig ()
196
+
197
+ providerType , err := cfg .Secrets .GetProviderType ()
198
+ if err != nil {
199
+ return fmt .Errorf ("error determining secrets provider type: %w" , err )
200
+ }
201
+
202
+ secretManager , err := secrets .CreateSecretProvider (providerType )
203
+ if err != nil {
204
+ return fmt .Errorf ("error instantiating secret manager: %w" , err )
205
+ }
206
+
207
+ err = runConfig .ValidateSecrets (ctx , secretManager )
208
+ if err != nil {
209
+ return fmt .Errorf ("error processing secrets: %w" , err )
210
+ }
211
+ }
212
+ return nil
213
+ }
214
+
192
215
//nolint:gocyclo // This function is complex but manageable
193
216
func (d * defaultManager ) RunWorkloadDetached (ctx context.Context , runConfig * runner.RunConfig ) error {
217
+ // before running, validate the parameters for the workload
218
+ err := validateSecretParameters (ctx , runConfig )
219
+ if err != nil {
220
+ return fmt .Errorf ("failed to validate workload parameters: %w" , err )
221
+ }
222
+
194
223
// Get the current executable path
195
224
execPath , err := os .Executable ()
196
225
if err != nil {
0 commit comments