@@ -40,6 +40,7 @@ import (
40
40
apierrors "k8s.io/apimachinery/pkg/api/errors"
41
41
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
42
42
"k8s.io/apimachinery/pkg/types"
43
+ ctrl "sigs.k8s.io/controller-runtime"
43
44
"sigs.k8s.io/controller-runtime/pkg/client"
44
45
"sigs.k8s.io/kustomize/api/konfig"
45
46
"sigs.k8s.io/kustomize/api/resource"
@@ -201,6 +202,15 @@ func (d *Decryptor) ImportKeys(ctx context.Context) error {
201
202
provider := d .kustomization .Spec .Decryption .Provider
202
203
switch provider {
203
204
case DecryptionProviderSOPS :
205
+ // load age key from env variable
206
+ globalAgeIdentities , err := age .GlobalIdentities ()
207
+ if err != nil {
208
+ log := ctrl .LoggerFrom (ctx )
209
+ log .Info ("failed to decrypt age identity from environment, ignoring" , "error" , err )
210
+ } else {
211
+ d .ageIdentities = append (d .ageIdentities , globalAgeIdentities ... )
212
+ }
213
+
204
214
secretName := types.NamespacedName {
205
215
Namespace : d .kustomization .GetNamespace (),
206
216
Name : d .kustomization .Spec .Decryption .SecretRef .Name ,
@@ -214,7 +224,6 @@ func (d *Decryptor) ImportKeys(ctx context.Context) error {
214
224
return fmt .Errorf ("cannot get %s decryption Secret '%s': %w" , provider , secretName , err )
215
225
}
216
226
217
- var err error
218
227
for name , value := range secret .Data {
219
228
switch filepath .Ext (name ) {
220
229
case DecryptionPGPExt :
0 commit comments