diff --git a/roles/defaults/helpers.go b/roles/defaults/helpers.go
new file mode 100644
index 0000000..a7bd833
--- /dev/null
+++ b/roles/defaults/helpers.go
@@ -0,0 +1,28 @@
+package defaults
+
+import (
+	"regexp"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
+)
+
+var (
+	r *regexp.Regexp
+)
+
+func init() {
+	r, _ = regexp.Compile(`{{ atmosphere_images\['(?P<ImageName>\w+)'] \| vexxhost.kubernetes.docker_image\('ref'\) }}`)
+}
+
+func AssertAtmosphereImage(t *testing.T, expected string, value string) {
+	matches := r.FindStringSubmatch(value)
+	require.Len(t, matches, 2)
+	imageName := matches[1]
+
+	image, err := GetImageByKey(imageName)
+	require.NoError(t, err)
+
+	assert.Equal(t, expected, image)
+}
diff --git a/roles/defaults/vars.go b/roles/defaults/vars.go
new file mode 100644
index 0000000..07b3dc0
--- /dev/null
+++ b/roles/defaults/vars.go
@@ -0,0 +1,27 @@
+package defaults
+
+import (
+	"bytes"
+	_ "embed"
+
+	"github.com/goccy/go-yaml"
+)
+
+var (
+	//go:embed vars/main.yml
+	vars_file []byte
+)
+
+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(vars_file), &image); err != nil {
+		return "", err
+	}
+
+	return image, nil
+}
