blob: 38b6b2295ee79d182c31a75e70f585b95ff86e5e [file] [log] [blame]
Mohammed Naser3b3507d2023-11-28 21:13:39 -05001package defaults
2
3import (
4 "bytes"
5 _ "embed"
Oleksandr K.99651a62024-10-30 04:41:51 +01006 "strings"
Mohammed Naser3b3507d2023-11-28 21:13:39 -05007
8 "github.com/goccy/go-yaml"
9)
10
11var (
12 //go:embed vars/main.yml
Mohammed Naser59853d42023-11-29 20:32:24 -050013 varsFile []byte
Mohammed Naser3b3507d2023-11-28 21:13:39 -050014)
15
Oleksandr K.99651a62024-10-30 04:41:51 +010016// Define a global variable for the release value.
17var release = "main"
18
Mohammed Naser4c8e0cb2024-02-21 11:51:34 -050019func GetImages() (map[string]string, error) {
Oleksandr K.99651a62024-10-30 04:41:51 +010020 // Replace {{ release }} with the actual release value
Jason Hall26476242024-02-19 12:56:23 -060021 modifiedVarsFile := []byte(strings.ReplaceAll(string(varsFile), "{{ atmosphere_release }}", release))
22
23 // Fix prefixes for images to allow tests to run
24 modifiedVarsFile = []byte(strings.ReplaceAll(string(modifiedVarsFile), "{{ atmosphere_image_prefix }}registry.atmosphere.dev", "harbor.atmosphere.dev"))
25 modifiedVarsFile = []byte(strings.ReplaceAll(string(modifiedVarsFile), "{{ atmosphere_image_prefix }}", "harbor.atmosphere.dev/"))
Oleksandr K.99651a62024-10-30 04:41:51 +010026
Mohammed Naser4c8e0cb2024-02-21 11:51:34 -050027 path, err := yaml.PathString("$._atmosphere_images")
28 if err != nil {
29 return nil, err
30 }
31
32 var images map[string]string
Oleksandr K.99651a62024-10-30 04:41:51 +010033 if err := path.Read(bytes.NewReader(modifiedVarsFile), &images); err != nil {
Mohammed Naser4c8e0cb2024-02-21 11:51:34 -050034 return nil, err
35 }
36
37 return images, nil
38}
39
Mohammed Naser3b3507d2023-11-28 21:13:39 -050040func GetImageByKey(key string) (string, error) {
41 path, err := yaml.PathString("$._atmosphere_images." + key)
42 if err != nil {
43 return "", err
44 }
45
46 var image string
Mohammed Naser59853d42023-11-29 20:32:24 -050047 if err := path.Read(bytes.NewReader(varsFile), &image); err != nil {
Mohammed Naser3b3507d2023-11-28 21:13:39 -050048 return "", err
49 }
50
51 return image, nil
52}