@@ -10,6 +10,7 @@ import (
10
10
"github.com/google/go-containerregistry/pkg/name"
11
11
templatesv1 "github.com/weaveworks/gitopssets-controller/api/v1alpha1"
12
12
"github.com/weaveworks/gitopssets-controller/controllers/templates/generators"
13
+ "k8s.io/apimachinery/pkg/types"
13
14
"sigs.k8s.io/controller-runtime/pkg/client"
14
15
)
15
16
@@ -45,34 +46,38 @@ func (g *ImagePolicyGenerator) Generate(ctx context.Context, sg *templatesv1.Git
45
46
return nil , nil
46
47
}
47
48
48
- g .Logger .Info ("generating params from ImagePolicy generator" , "repo " , sg .ImagePolicy .PolicyRef )
49
+ g .Logger .Info ("generating params from ImagePolicy generator" , "imagePolicy " , sg .ImagePolicy .PolicyRef )
49
50
50
- var repo imagev1.ImagePolicy
51
- repoName := client.ObjectKey {Name : sg .ImagePolicy .PolicyRef , Namespace : ks .GetNamespace ()}
52
- if err := g .Client .Get (ctx , repoName , & repo ); err != nil {
51
+ var imagePolicy imagev1.ImagePolicy
52
+ imagePolicyName := client.ObjectKey {Name : sg .ImagePolicy .PolicyRef , Namespace : ks .GetNamespace ()}
53
+ if err := g .Client .Get (ctx , imagePolicyName , & imagePolicy ); err != nil {
53
54
return nil , fmt .Errorf ("could not load ImagePolicy: %w" , err )
54
55
}
55
56
56
57
result := []map [string ]any {}
57
58
58
- if repo .Status .LatestImage == "" {
59
+ if imagePolicy .Status .LatestImage == "" {
59
60
g .Logger .Info ("image policy has not calculated the latest image" )
60
- return result , nil
61
+ return nil , generators .ArtifactError ("ImagePolicy" ,
62
+ types.NamespacedName {
63
+ Name : imagePolicy .GetName (),
64
+ Namespace : imagePolicy .GetNamespace (),
65
+ })
61
66
}
62
67
63
- latestTag , err := name .NewTag (repo .Status .LatestImage )
68
+ latestTag , err := name .NewTag (imagePolicy .Status .LatestImage )
64
69
if err != nil {
65
70
return nil , err
66
71
}
67
72
68
- g .Logger .Info ("image policy" , "latestImage" , repo .Status .LatestImage , "latestTag" , latestTag .TagStr (), "previousImage" , repo .Status .ObservedPreviousImage )
73
+ g .Logger .Info ("image policy" , "latestImage" , imagePolicy .Status .LatestImage , "latestTag" , latestTag .TagStr (), "previousImage" , imagePolicy .Status .ObservedPreviousImage )
69
74
70
75
// This stores empty strings the for the previous tag if it's empty because
71
76
// that saves users having to check for the existence of the fields in their
72
77
// templates.
73
78
previousTag := ""
74
- if repo .Status .ObservedPreviousImage != "" {
75
- parsedTag , err := name .NewTag (repo .Status .ObservedPreviousImage )
79
+ if imagePolicy .Status .ObservedPreviousImage != "" {
80
+ parsedTag , err := name .NewTag (imagePolicy .Status .ObservedPreviousImage )
76
81
if err != nil {
77
82
return nil , err
78
83
}
@@ -81,10 +86,10 @@ func (g *ImagePolicyGenerator) Generate(ctx context.Context, sg *templatesv1.Git
81
86
}
82
87
83
88
generated := map [string ]any {
84
- "latestImage" : repo .Status .LatestImage ,
89
+ "latestImage" : imagePolicy .Status .LatestImage ,
85
90
"image" : latestTag .Repository .Name (),
86
91
"latestTag" : latestTag .TagStr (),
87
- "previousImage" : repo .Status .ObservedPreviousImage ,
92
+ "previousImage" : imagePolicy .Status .ObservedPreviousImage ,
88
93
"previousTag" : previousTag ,
89
94
}
90
95
0 commit comments