test: refactor image tests + add keystone
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 5522a9d..8d5e9df 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -6,44 +6,45 @@
   cancel-in-progress: true
 
 jobs:
-  build-prometheus-ethtool-exporter:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v3.0.2 
-        with:
-          fetch-depth: 0
-      - uses: tj-actions/changed-files@v29.0.3
-        id: changed-files
-        with:
-          files: images/prometheus-ethtool-exporter/*
-      - uses: docker/setup-qemu-action@v2.0.0
-        if: steps.changed-files.outputs.any_changed == 'true'
-      - uses: docker/setup-buildx-action@v2.0.0
-        if: steps.changed-files.outputs.any_changed == 'true'
-      - run: echo PROJECT_REF=$(cat images/prometheus-ethtool-exporter/ref) >> $GITHUB_ENV
-        if: steps.changed-files.outputs.any_changed == 'true'
-      - uses: docker/login-action@v2.0.0
-        if: steps.changed-files.outputs.any_changed == 'true'
-        with:
-          registry: quay.io
-          username: ${{ secrets.QUAY_USERNAME }}
-          password: ${{ secrets.QUAY_ROBOT_TOKEN }}
-      - uses: docker/build-push-action@v3.1.1
-        if: steps.changed-files.outputs.any_changed == 'true'
-        with:
-          context: images/prometheus-ethtool-exporter
-          cache-from: type=gha,scope=prometheus-ethtool-exporter
-          cache-to: type=gha,mode=max,scope=prometheus-ethtool-exporter
-          platforms: linux/amd64,linux/arm64
-          push: true
-          build-args: |
-            PROJECT_REF=${{ env.PROJECT_REF }}
-          tags: |
-            quay.io/vexxhost/ethtool-exporter:${{ env.PROJECT_REF }}
+  # build-prometheus-ethtool-exporter:
+  #   runs-on: ubuntu-latest
+  #   steps:
+  #     - uses: actions/checkout@v3.0.2 
+  #       with:
+  #         fetch-depth: 0
+  #     - uses: tj-actions/changed-files@v29.0.2
+  #       id: changed-files
+  #       with:
+  #         files: images/prometheus-ethtool-exporter/*
+  #     - uses: docker/setup-qemu-action@v2.0.0
+  #       if: steps.changed-files.outputs.any_changed == 'true'
+  #     - uses: docker/setup-buildx-action@v2.0.0
+  #       if: steps.changed-files.outputs.any_changed == 'true'
+  #     - run: echo PROJECT_REF=$(cat images/prometheus-ethtool-exporter/ref) >> $GITHUB_ENV
+  #       if: steps.changed-files.outputs.any_changed == 'true'
+  #     - uses: docker/login-action@v2.0.0
+  #       if: steps.changed-files.outputs.any_changed == 'true'
+  #       with:
+  #         registry: quay.io
+  #         username: ${{ secrets.QUAY_USERNAME }}
+  #         password: ${{ secrets.QUAY_ROBOT_TOKEN }}
+  #     - uses: docker/build-push-action@v3.1.1
+  #       if: steps.changed-files.outputs.any_changed == 'true'
+  #       with:
+  #         context: images/prometheus-ethtool-exporter
+  #         cache-from: type=gha,scope=prometheus-ethtool-exporter
+  #         cache-to: type=gha,mode=max,scope=prometheus-ethtool-exporter
+  #         platforms: linux/amd64,linux/arm64
+  #         push: true
+  #         build-args: |
+  #           PROJECT_REF=${{ env.PROJECT_REF }}
+  #         tags: |
+  #           quay.io/vexxhost/ethtool-exporter:${{ env.PROJECT_REF }}
 
   molecule:
     runs-on: ubuntu-latest
     # needs:
+    #   - build-prometheus-ethtool-exporter
     #   - build-openstack-images
     steps:
       - uses: actions/checkout@v3.0.2
diff --git a/ci/image_tags_test.go b/ci/image_tags_test.go
index 7478560..75025d6 100644
--- a/ci/image_tags_test.go
+++ b/ci/image_tags_test.go
@@ -1,29 +1,50 @@
 package linters
 
 import (
+	"fmt"
 	"os"
 	"strings"
 	"testing"
 
 	"github.com/stretchr/testify/assert"
+	"github.com/stretchr/testify/require"
 	"gopkg.in/yaml.v3"
 )
 
-func TestPrometheusEthtoolExporterTag(t *testing.T) {
-	imageFile, err := os.ReadFile("../images/prometheus-ethtool-exporter/ref")
-	assert.NoError(t, err)
+func getImageTag(t *testing.T, file string) string {
+	imageFile, err := os.ReadFile(file)
+	require.NoError(t, err)
 
-	imageTag := strings.TrimSpace(string(imageFile))
+	return strings.TrimSpace(string(imageFile))
+}
 
-	data, err := os.ReadFile("../roles/prometheus_ethtool_exporter/defaults/main.yml")
-	assert.NoError(t, err)
+func getAnsibleTag(t *testing.T, role string) string {
+	path := fmt.Sprint("../roles/", role, "/defaults/main.yml")
+	data, err := os.ReadFile(path)
+	require.NoError(t, err)
 
 	defaults := make(map[interface{}]interface{})
 	err = yaml.Unmarshal(data, &defaults)
-	assert.NoError(t, err)
+	require.NoError(t, err)
 
-	ansibleTag, ok := defaults["prometheus_ethtool_exporter_image_tag"]
-	if assert.True(t, ok) {
-		assert.Equal(t, imageTag, ansibleTag)
-	}
+	key := fmt.Sprint(role, "_image_tag")
+	ansibleTag, ok := defaults[key]
+	require.True(t, ok)
+
+	return ansibleTag.(string)
+}
+
+func assertImageTag(t *testing.T, imageTagFile string, ansibleRole string) {
+	imageTag := getImageTag(t, imageTagFile)
+	ansibleTag := getAnsibleTag(t, ansibleRole)
+
+	assert.Equal(t, imageTag, ansibleTag)
+}
+
+func TestPrometheusEthtoolExporterTag(t *testing.T) {
+	assertImageTag(t, "../images/prometheus-ethtool-exporter/ref", "prometheus_ethtool_exporter")
+}
+
+func TestOpenstackHelmKeystoneTag(t *testing.T) {
+	assertImageTag(t, "../images/openstack/projects/keystone/wallaby/ref", "openstack_helm_keystone")
 }