@@ -372,18 +372,42 @@ func buildManagedInferenceEnvVars(instance *paperclipv1alpha1.Instance) []corev1
372372 return nil
373373 }
374374
375- vars := []corev1.EnvVar {
376- {
377- Name : "PAPERCLIP_MANAGED_INFERENCE_API_KEY" ,
375+ secretRef := * instance .Spec .Adapters .ManagedInferenceSecretRef
376+
377+ // Per-provider keys - each is optional in the Secret
378+ providerKeys := []string {
379+ "PAPERCLIP_MANAGED_ANTHROPIC_API_KEY" ,
380+ "PAPERCLIP_MANAGED_OPENAI_API_KEY" ,
381+ "PAPERCLIP_MANAGED_GEMINI_API_KEY" ,
382+ "PAPERCLIP_MANAGED_OPENROUTER_API_KEY" ,
383+ }
384+
385+ vars := make ([]corev1.EnvVar , 0 , len (providerKeys )+ 3 )
386+ for _ , key := range providerKeys {
387+ vars = append (vars , corev1.EnvVar {
388+ Name : key ,
378389 ValueFrom : & corev1.EnvVarSource {
379390 SecretKeyRef : & corev1.SecretKeySelector {
380- LocalObjectReference : * instance .Spec .Adapters .ManagedInferenceSecretRef ,
381- Key : "PAPERCLIP_MANAGED_INFERENCE_API_KEY" ,
391+ LocalObjectReference : secretRef ,
392+ Key : key ,
393+ Optional : Ptr (true ),
382394 },
383395 },
384- },
396+ })
385397 }
386398
399+ // Legacy single-key for backward compatibility
400+ vars = append (vars , corev1.EnvVar {
401+ Name : "PAPERCLIP_MANAGED_INFERENCE_API_KEY" ,
402+ ValueFrom : & corev1.EnvVarSource {
403+ SecretKeyRef : & corev1.SecretKeySelector {
404+ LocalObjectReference : secretRef ,
405+ Key : "PAPERCLIP_MANAGED_INFERENCE_API_KEY" ,
406+ Optional : Ptr (true ),
407+ },
408+ },
409+ })
410+
387411 if instance .Spec .Adapters .ManagedInferenceProvider != "" {
388412 vars = append (vars , corev1.EnvVar {
389413 Name : "PAPERCLIP_MANAGED_INFERENCE_PROVIDER" ,
0 commit comments