[ATMOSPHERE-533] ci: update go unit tests (#1983)

remove 1.22 from TestKubeconform test (node-feature-discovery uses grpc in probe which is available since 1.22)
add a workaround values in TestKubeconform for loki chart
skip CephFilesystemSubVolumeGroup kind for ceph chart
fix oslo_db test expected values
update TestImageExist test to support image tags without digest
fix pxc test codes
supplement placement chart value for database max_retries param

depends-on: #1977
depends-on: #1211
depends-on: #1987 #1211 #1977

Reviewed-by: Mohammed Naser <mnaser@vexxhost.com>
Reviewed-by: Oleksandr K.
diff --git a/roles/defaults/vars.go b/roles/defaults/vars.go
index 4c11748..0799e7d 100644
--- a/roles/defaults/vars.go
+++ b/roles/defaults/vars.go
@@ -3,6 +3,7 @@
 import (
 	"bytes"
 	_ "embed"
+	"strings"
 
 	"github.com/goccy/go-yaml"
 )
@@ -12,14 +13,25 @@
 	varsFile []byte
 )
 
+// Define a global variable for the release value.
+var release = "main"
+
+// Function to replace the {{ release }} placeholders
+func replaceReleaseInYAML(yamlContent []byte, release string) []byte {
+	return []byte(strings.ReplaceAll(string(yamlContent), "{{ atmosphere_release }}", release))
+}
+
 func GetImages() (map[string]string, error) {
+	// Replace {{ release }} with the actual release value
+	modifiedVarsFile := replaceReleaseInYAML(varsFile, release)
+
 	path, err := yaml.PathString("$._atmosphere_images")
 	if err != nil {
 		return nil, err
 	}
 
 	var images map[string]string
-	if err := path.Read(bytes.NewReader(varsFile), &images); err != nil {
+	if err := path.Read(bytes.NewReader(modifiedVarsFile), &images); err != nil {
 		return nil, err
 	}