| package defaults |
| |
| import ( |
| "bytes" |
| _ "embed" |
| "strings" |
| |
| "github.com/goccy/go-yaml" |
| ) |
| |
| var ( |
| //go:embed vars/main.yml |
| varsFile []byte |
| ) |
| |
| // Define a global variable for the release value. |
| var release = "main" |
| |
| func GetImages() (map[string]string, error) { |
| // Replace {{ release }} with the actual release value |
| modifiedVarsFile := []byte(strings.ReplaceAll(string(varsFile), "{{ atmosphere_release }}", release)) |
| |
| // Fix prefixes for images to allow tests to run |
| modifiedVarsFile = []byte(strings.ReplaceAll(string(modifiedVarsFile), "{{ atmosphere_image_prefix }}registry.atmosphere.dev", "harbor.atmosphere.dev")) |
| modifiedVarsFile = []byte(strings.ReplaceAll(string(modifiedVarsFile), "{{ atmosphere_image_prefix }}", "harbor.atmosphere.dev/")) |
| |
| path, err := yaml.PathString("$._atmosphere_images") |
| if err != nil { |
| return nil, err |
| } |
| |
| var images map[string]string |
| if err := path.Read(bytes.NewReader(modifiedVarsFile), &images); err != nil { |
| return nil, err |
| } |
| |
| return images, nil |
| } |
| |
| func GetImageByKey(key string) (string, error) { |
| path, err := yaml.PathString("$._atmosphere_images." + key) |
| if err != nil { |
| return "", err |
| } |
| |
| var image string |
| if err := path.Read(bytes.NewReader(varsFile), &image); err != nil { |
| return "", err |
| } |
| |
| return image, nil |
| } |