Skip to content

Commit bf87031

Browse files
committed
fix: include kube-vip image in generated caren-images.txt
1 parent 4751e3c commit bf87031

File tree

2 files changed

+55
-4
lines changed

2 files changed

+55
-4
lines changed

hack/tools/fetch-images/main.go

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package main
55

66
import (
7+
"bufio"
78
"bytes"
89
"flag"
910
"fmt"
@@ -38,12 +39,24 @@ type ChartInfo struct {
3839
extraImagesFiles []string
3940
}
4041

42+
type stringSlice []string
43+
44+
func (s *stringSlice) String() string {
45+
return strings.Join(*s, ",")
46+
}
47+
48+
func (s *stringSlice) Set(value string) error {
49+
*s = append(*s, value)
50+
return nil
51+
}
52+
4153
func main() {
4254
args := os.Args
4355
var (
44-
chartDirectory string
45-
helmChartConfigMap string
46-
carenVersion string
56+
chartDirectory string
57+
helmChartConfigMap string
58+
carenVersion string
59+
additionalYAMLFiles stringSlice
4760
)
4861
flagSet := flag.NewFlagSet(createImagesCMD, flag.ExitOnError)
4962
flagSet.StringVar(&chartDirectory, "chart-directory", "",
@@ -52,6 +65,8 @@ func main() {
5265
"path to helm chart configmap for CAREN")
5366
flagSet.StringVar(&carenVersion, "caren-version", "",
5467
"CAREN version for images override")
68+
flagSet.Var(&additionalYAMLFiles, "additional-yaml-files",
69+
"additional YAML images to include")
5570
err := flagSet.Parse(args[1:])
5671
if err != nil {
5772
fmt.Println("failed to parse args", err.Error())
@@ -91,6 +106,12 @@ func main() {
91106
os.Exit(1)
92107
}
93108
images = append(images, addonImages...)
109+
additionalYAMLImages, err := getImagesFromYAMLFiles(additionalYAMLFiles)
110+
if err != nil {
111+
fmt.Println("failed to get images from additional YAML files", err.Error())
112+
os.Exit(1)
113+
}
114+
images = append(images, additionalYAMLImages...)
94115
slices.Sort(images)
95116
images = slices.Compact(images)
96117
for _, image := range images {
@@ -348,3 +369,32 @@ func getTemplatedHelmConfigMap(helmChartConfigMap string) (string, error) {
348369
}
349370
return b.String(), nil
350371
}
372+
373+
func getImagesFromYAMLFiles(files []string) ([]string, error) {
374+
var images []string
375+
for _, f := range files {
376+
file, err := os.Open(f)
377+
if err != nil {
378+
return nil, fmt.Errorf("failed to open file %s with %w", f, err)
379+
}
380+
defer file.Close()
381+
382+
scanner := bufio.NewScanner(file)
383+
for scanner.Scan() {
384+
line := scanner.Text()
385+
if strings.Contains(line, " image: ") {
386+
// Get everything after "image: "
387+
image := strings.SplitAfterN(line, "image: ", 2)
388+
if len(image) == 2 {
389+
images = append(images, strings.TrimSpace(image[1]))
390+
}
391+
}
392+
}
393+
394+
err = scanner.Err()
395+
if err != nil {
396+
return nil, fmt.Errorf("failed to scan file %s: %w", f, err)
397+
}
398+
}
399+
return images, nil
400+
}

make/addons.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,5 @@ list-images:
9090
cd hack/tools/fetch-images && go run . \
9191
-chart-directory=$(PWD)/charts/cluster-api-runtime-extensions-nutanix/ \
9292
-helm-chart-configmap=$(PWD)/charts/cluster-api-runtime-extensions-nutanix/templates/helm-config.yaml \
93-
-caren-version=$(CAREN_VERSION)
93+
-caren-version=$(CAREN_VERSION) \
94+
-additional-yaml-files=$(PWD)/charts/cluster-api-runtime-extensions-nutanix/templates/virtual-ip/kube-vip/manifests/kube-vip-configmap.yaml

0 commit comments

Comments
 (0)