Skip to content

Commit 9f0d934

Browse files
authored
fix: include kube-vip image in generated caren-images.txt (#940)
**What problem does this PR solve?**: Noticed that the kube-vip image was missing in the last release. This is because kube-vip is deployed as a static Pod and not as a Helm chart. <details> <summary>$ make list-images</summary> ``` docker.io/nutanix/ntnx-csi-precheck:3.0.0 docker.io/nutanix/ntnx-csi:3.0.0 docker.io/rancher/local-path-provisioner:v0.0.30 ghcr.io/kube-vip/kube-vip:v0.8.3 ghcr.io/nutanix-cloud-native/caren-helm-reg:v0.0.0-dev ghcr.io/nutanix-cloud-native/cloud-provider-nutanix/controller:v0.4.1 ghcr.io/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix:v0.0.0-dev public.ecr.aws/ebs-csi-driver/aws-ebs-csi-driver:v1.35.0 public.ecr.aws/eks-distro/kubernetes-csi/external-attacher:v4.7.0-eks-1-31-3 public.ecr.aws/eks-distro/kubernetes-csi/external-provisioner:v5.1.0-eks-1-31-3 public.ecr.aws/eks-distro/kubernetes-csi/external-resizer:v1.12.0-eks-1-31-3 public.ecr.aws/eks-distro/kubernetes-csi/livenessprobe:v2.14.0-eks-1-31-3 public.ecr.aws/eks-distro/kubernetes-csi/node-driver-registrar:v2.12.0-eks-1-31-3 quay.io/calico/apiserver:v3.28.2 quay.io/calico/cni:v3.28.2 quay.io/calico/csi:v3.28.2 quay.io/calico/ctl:v3.28.2 quay.io/calico/kube-controllers:v3.28.2 quay.io/calico/node-driver-registrar:v3.28.2 quay.io/calico/node:v3.28.2 quay.io/calico/pod2daemon-flexvol:v3.28.2 quay.io/calico/typha:v3.28.2 quay.io/cilium/certgen:v0.2.0 quay.io/cilium/cilium-envoy:v1.29.9-1726784081-a90146d13b4cd7d168d573396ccf2b3db5a3b047 quay.io/cilium/cilium:v1.16.2 quay.io/cilium/hubble-relay:v1.16.2 quay.io/cilium/operator-generic:v1.16.2 quay.io/frrouting/frr:9.1.0 quay.io/metallb/controller:v0.14.8 quay.io/metallb/speaker:v0.14.8 quay.io/tigera/operator:v1.34.5 registry.k8s.io/autoscaling/cluster-autoscaler:v1.31.0 registry.k8s.io/nfd/node-feature-discovery:v0.16.4 registry.k8s.io/provider-aws/cloud-controller-manager:v1.27.9 registry.k8s.io/provider-aws/cloud-controller-manager:v1.28.9 registry.k8s.io/provider-aws/cloud-controller-manager:v1.29.6 registry.k8s.io/provider-aws/cloud-controller-manager:v1.30.3 registry.k8s.io/provider-aws/cloud-controller-manager:v1.31.0 registry.k8s.io/sig-storage/csi-attacher:v4.4.3 registry.k8s.io/sig-storage/csi-external-health-monitor-controller:v0.10.0 registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.3 registry.k8s.io/sig-storage/csi-provisioner:v3.6.3 registry.k8s.io/sig-storage/csi-resizer:v1.9.3 registry.k8s.io/sig-storage/csi-snapshotter:v3.0.3 registry.k8s.io/sig-storage/livenessprobe:v2.11.0 registry.k8s.io/sig-storage/snapshot-controller:v8.1.0 ``` </details> **Which issue(s) this PR fixes**: Fixes # **How Has This Been Tested?**: <!-- Please describe the tests that you ran to verify your changes. Provide output from the tests and any manual steps needed to replicate the tests. --> **Special notes for your reviewer**: <!-- Use this to provide any additional information to the reviewers. This may include: - Best way to review the PR. - Where the author wants the most review attention on. - etc. -->
1 parent 91272db commit 9f0d934

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 {
@@ -350,3 +371,32 @@ func getTemplatedHelmConfigMap(helmChartConfigMap string) (string, error) {
350371
}
351372
return b.String(), nil
352373
}
374+
375+
func getImagesFromYAMLFiles(files []string) ([]string, error) {
376+
var images []string
377+
for _, f := range files {
378+
file, err := os.Open(f)
379+
if err != nil {
380+
return nil, fmt.Errorf("failed to open file %s with %w", f, err)
381+
}
382+
defer file.Close()
383+
384+
scanner := bufio.NewScanner(file)
385+
for scanner.Scan() {
386+
line := scanner.Text()
387+
if strings.Contains(line, " image: ") {
388+
// Get everything after "image: "
389+
image := strings.SplitAfterN(line, "image: ", 2)
390+
if len(image) == 2 {
391+
images = append(images, strings.TrimSpace(image[1]))
392+
}
393+
}
394+
}
395+
396+
err = scanner.Err()
397+
if err != nil {
398+
return nil, fmt.Errorf("failed to scan file %s: %w", f, err)
399+
}
400+
}
401+
return images, nil
402+
}

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)