@@ -23,7 +23,6 @@ import (
23
23
24
24
"github.com/pipe-cd/pipecd/pkg/app/pipedv1/plugin/kubernetes/config"
25
25
"github.com/pipe-cd/pipecd/pkg/app/pipedv1/plugin/kubernetes/provider"
26
- "github.com/pipe-cd/pipecd/pkg/model"
27
26
"github.com/pipe-cd/pipecd/pkg/plugin/diff"
28
27
"github.com/pipe-cd/pipecd/pkg/plugin/sdk"
29
28
)
@@ -48,41 +47,22 @@ func parseContainerImage(image string) (img containerImage) {
48
47
49
48
// determineVersions decides artifact versions of an application.
50
49
// It finds all container images that are being specified in the workload manifests then returns their names and tags.
51
- func determineVersions (manifests []provider.Manifest ) []* model .ArtifactVersion {
50
+ func determineVersions (manifests []provider.Manifest ) []sdk .ArtifactVersion {
52
51
imageMap := map [string ]struct {}{}
53
52
for _ , m := range manifests {
54
53
for _ , c := range provider .FindContainerImages (m ) {
55
54
imageMap [c ] = struct {}{}
56
55
}
57
56
}
58
57
59
- versions := make ([]* model .ArtifactVersion , 0 , len (imageMap ))
58
+ versions := make ([]sdk .ArtifactVersion , 0 , len (imageMap ))
60
59
for i := range imageMap {
61
60
image := parseContainerImage (i )
62
- versions = append (versions , & model.ArtifactVersion {
63
- Kind : model .ArtifactVersion_CONTAINER_IMAGE ,
64
- Version : image .tag ,
65
- Name : image .name ,
66
- Url : i ,
67
- })
68
- }
69
-
70
- return versions
71
- }
72
-
73
- // determineVersionsSDK decides artifact versions of an application.
74
- // It finds all container images that are being specified in the workload manifests then returns their names and tags.
75
- // TODO: rewrite this function to determineVersions after the current determineVersions is removed.
76
- func determineVersionsSDK (manifests []provider.Manifest ) []sdk.ArtifactVersion {
77
- values := determineVersions (manifests )
78
-
79
- versions := make ([]sdk.ArtifactVersion , 0 , len (values ))
80
- for _ , v := range values {
81
61
versions = append (versions , sdk.ArtifactVersion {
82
62
Kind : sdk .ArtifactKindContainerImage ,
83
- Version : v . Version ,
84
- Name : v . Name ,
85
- URL : v . Url ,
63
+ Version : image . tag ,
64
+ Name : image . name ,
65
+ URL : i ,
86
66
})
87
67
}
88
68
@@ -176,16 +156,17 @@ func checkReplicasChange(ns diff.Nodes) (before, after string, changed bool) {
176
156
return node .StringX (), node .StringY (), true
177
157
}
178
158
159
+ // determineStrategy decides the sync strategy and summary message based on the given manifests.
179
160
// First up, checks to see if the workload's `spec.template` has been changed,
180
161
// and then checks if the configmap/secret's data.
181
- func determineStrategy (olds , news []provider.Manifest , workloadRefs []config.K8sResourceReference , logger * zap.Logger ) (strategy model .SyncStrategy , summary string ) {
162
+ func determineStrategy (olds , news []provider.Manifest , workloadRefs []config.K8sResourceReference , logger * zap.Logger ) (strategy sdk .SyncStrategy , summary string ) {
182
163
oldWorkloads := findWorkloadManifests (olds , workloadRefs )
183
164
if len (oldWorkloads ) == 0 {
184
- return model . SyncStrategy_QUICK_SYNC , "Quick sync by applying all manifests because it was unable to find the currently running workloads"
165
+ return sdk . SyncStrategyQuickSync , "Quick sync by applying all manifests because it was unable to find the currently running workloads"
185
166
}
186
167
newWorkloads := findWorkloadManifests (news , workloadRefs )
187
168
if len (newWorkloads ) == 0 {
188
- return model . SyncStrategy_QUICK_SYNC , "Quick sync by applying all manifests because it was unable to find workloads in the new manifests"
169
+ return sdk . SyncStrategyQuickSync , "Quick sync by applying all manifests because it was unable to find workloads in the new manifests"
189
170
}
190
171
191
172
workloads := provider .FindSameManifests (oldWorkloads , newWorkloads )
@@ -196,17 +177,17 @@ func determineStrategy(olds, news []provider.Manifest, workloadRefs []config.K8s
196
177
// do progressive deployment with the specified pipeline.
197
178
diffResult , err := provider .Diff (w .Old , w .New , logger )
198
179
if err != nil {
199
- return model . SyncStrategy_PIPELINE , fmt .Sprintf ("Sync progressively due to an error while calculating the diff (%v)" , err )
180
+ return sdk . SyncStrategyPipelineSync , fmt .Sprintf ("Sync progressively due to an error while calculating the diff (%v)" , err )
200
181
}
201
182
diffNodes := diffResult .Nodes ()
202
183
diffs [w .New .Key ()] = diffNodes
203
184
204
185
templateDiffs := diffNodes .FindByPrefix ("spec.template" )
205
186
if len (templateDiffs ) > 0 {
206
187
if msg , changed := checkImageChange (templateDiffs ); changed {
207
- return model . SyncStrategy_PIPELINE , msg
188
+ return sdk . SyncStrategyPipelineSync , msg
208
189
}
209
- return model . SyncStrategy_PIPELINE , fmt .Sprintf ("Sync progressively because pod template of workload %s was changed" , w .New .Name ())
190
+ return sdk . SyncStrategyPipelineSync , fmt .Sprintf ("Sync progressively because pod template of workload %s was changed" , w .New .Name ())
210
191
}
211
192
}
212
193
@@ -215,22 +196,22 @@ func determineStrategy(olds, news []provider.Manifest, workloadRefs []config.K8s
215
196
oldConfigs := provider .FindConfigsAndSecrets (olds )
216
197
newConfigs := provider .FindConfigsAndSecrets (news )
217
198
if len (oldConfigs ) > len (newConfigs ) {
218
- return model . SyncStrategy_PIPELINE , fmt .Sprintf ("Sync progressively because %d configmap/secret deleted" , len (oldConfigs )- len (newConfigs ))
199
+ return sdk . SyncStrategyPipelineSync , fmt .Sprintf ("Sync progressively because %d configmap/secret deleted" , len (oldConfigs )- len (newConfigs ))
219
200
}
220
201
if len (oldConfigs ) < len (newConfigs ) {
221
- return model . SyncStrategy_PIPELINE , fmt .Sprintf ("Sync progressively because new %d configmap/secret added" , len (newConfigs )- len (oldConfigs ))
202
+ return sdk . SyncStrategyPipelineSync , fmt .Sprintf ("Sync progressively because new %d configmap/secret added" , len (newConfigs )- len (oldConfigs ))
222
203
}
223
204
for k , oc := range oldConfigs {
224
205
nc , ok := newConfigs [k ]
225
206
if ! ok {
226
- return model . SyncStrategy_PIPELINE , fmt .Sprintf ("Sync progressively because %s %s was deleted" , oc .Kind (), oc .Name ())
207
+ return sdk . SyncStrategyPipelineSync , fmt .Sprintf ("Sync progressively because %s %s was deleted" , oc .Kind (), oc .Name ())
227
208
}
228
209
result , err := provider .Diff (oc , nc , logger )
229
210
if err != nil {
230
- return model . SyncStrategy_PIPELINE , fmt .Sprintf ("Sync progressively due to an error while calculating the diff (%v)" , err )
211
+ return sdk . SyncStrategyPipelineSync , fmt .Sprintf ("Sync progressively due to an error while calculating the diff (%v)" , err )
231
212
}
232
213
if result .HasDiff () {
233
- return model . SyncStrategy_PIPELINE , fmt .Sprintf ("Sync progressively because %s %s was updated" , oc .Kind (), oc .Name ())
214
+ return sdk . SyncStrategyPipelineSync , fmt .Sprintf ("Sync progressively because %s %s was updated" , oc .Kind (), oc .Name ())
234
215
}
235
216
}
236
217
@@ -244,24 +225,8 @@ func determineStrategy(olds, news []provider.Manifest, workloadRefs []config.K8s
244
225
}
245
226
if len (scales ) > 0 {
246
227
slices .Sort (scales )
247
- return model .SyncStrategy_QUICK_SYNC , fmt .Sprintf ("Quick sync to scale %s" , strings .Join (scales , ", " ))
248
- }
249
-
250
- return model .SyncStrategy_QUICK_SYNC , "Quick sync by applying all manifests"
251
- }
252
-
253
- // determineStrategySDK decides the sync strategy and summary message based on the given manifests.
254
- // TODO: rewrite this function to determineStrategy after the current determineStrategy is removed.
255
- func determineStrategySDK (olds , news []provider.Manifest , workloadRefs []config.K8sResourceReference , logger * zap.Logger ) (strategy sdk.SyncStrategy , summary string ) {
256
- mStrategy , summary := determineStrategy (olds , news , workloadRefs , logger )
257
-
258
- var s sdk.SyncStrategy
259
- switch mStrategy {
260
- case model .SyncStrategy_QUICK_SYNC :
261
- s = sdk .SyncStrategyQuickSync
262
- case model .SyncStrategy_PIPELINE :
263
- s = sdk .SyncStrategyQuickSync
228
+ return sdk .SyncStrategyQuickSync , fmt .Sprintf ("Quick sync to scale %s" , strings .Join (scales , ", " ))
264
229
}
265
230
266
- return s , summary
231
+ return sdk . SyncStrategyQuickSync , "Quick sync by applying all manifests"
267
232
}
0 commit comments