|
5 | 5 | "encoding/json"
|
6 | 6 | "flag"
|
7 | 7 | "fmt"
|
| 8 | + "golang.org/x/mod/module" |
8 | 9 | "io/ioutil"
|
9 | 10 | "os"
|
10 | 11 | "os/exec"
|
@@ -258,28 +259,25 @@ func applyReplacements(mf *modfile.File, pins map[string]string) {
|
258 | 259 | // ensureKubernetesReplace ensures there's a "k8s.io/kubernetes => k8s.io/kubernetes vX.Y.Z" line
|
259 | 260 | // matching the require(...) version in case something references it directly.
|
260 | 261 | func ensureKubernetesReplace(mf *modfile.File, k8sVer string) {
|
261 |
| - found := false |
| 262 | + var newReplaces []*modfile.Replace |
| 263 | + |
262 | 264 | for _, rep := range mf.Replace {
|
263 |
| - if rep.Old.Path == "k8s.io/kubernetes" { |
264 |
| - found = true |
265 |
| - if rep.New.Version != k8sVer { |
266 |
| - if debug { |
267 |
| - fmt.Printf("Updating k8s.io/kubernetes replace from %s to %s\n", |
268 |
| - rep.New.Version, k8sVer) |
269 |
| - } |
270 |
| - rep.New.Version = k8sVer |
| 265 | + if rep.Old.Path == "k8s.io/kubernetes" && rep.New.Version != k8sVer { |
| 266 | + if debug { |
| 267 | + fmt.Printf("Updating k8s.io/kubernetes replace from %s to %s\n", rep.New.Version, k8sVer) |
271 | 268 | }
|
272 |
| - break |
273 |
| - } |
274 |
| - } |
275 |
| - if !found { |
276 |
| - if debug { |
277 |
| - fmt.Printf("Inserting k8s.io/kubernetes => %s\n", k8sVer) |
278 |
| - } |
279 |
| - if err := mf.AddReplace("k8s.io/kubernetes", "", "k8s.io/kubernetes", k8sVer); err != nil { |
280 |
| - die("Error adding replace for k8s.io/kubernetes: %v", err) |
| 269 | + continue // Skip adding this entry to newReplaces |
281 | 270 | }
|
| 271 | + newReplaces = append(newReplaces, rep) |
282 | 272 | }
|
| 273 | + |
| 274 | + // Add the correct replace directive |
| 275 | + newReplaces = append(newReplaces, &modfile.Replace{ |
| 276 | + Old: module.Version{Path: "k8s.io/kubernetes"}, |
| 277 | + New: module.Version{Path: "k8s.io/kubernetes", Version: k8sVer}, |
| 278 | + }) |
| 279 | + |
| 280 | + mf.Replace = newReplaces |
283 | 281 | }
|
284 | 282 |
|
285 | 283 | // findKubernetesVersion returns the version in the require(...) block for k8s.io/kubernetes
|
|
0 commit comments