Repository: redhat-openshift-ecosystem/openshift-preflight
Pull request #773 (2022-08-22 22:28:32)

updating ospid logic to exit if legacy project id is provided
- Fixes: #758 
- Added a `PreRunE` to validate the project id, and throw an error if it's in an improper format is used.

Output from test
```
Examples:
  preflight check container quay.io/repo-name/container-name:version

Flags:
      --certification-project-id string   Certification Project ID from connect.redhat.com/projects/{certification-project-id}/overview
                                          URL paramater. This value may differ from the PID on the overview page. (env: PFLT_CERTIFICATION_PROJECT_ID)
  -h, --help                              help for container
      --pyxis-api-token string            API token for Pyxis authentication (env: PFLT_PYXIS_API_TOKEN)
      --pyxis-env string                  Env to use for Pyxis submissions. (default "prod")
      --pyxis-host string                 Host to use for Pyxis submissions. This will override Pyxis Env. Only set this if you know what you are doing.
                                          If you do set it, it should include just the host, and the URI path. (env: PFLT_PYXIS_HOST)
  -s, --submit                            submit check container results to red hat

Global Flags:
      --artifacts string       Where check-specific artifacts will be written. (env: PFLT_ARTIFACTS)
  -d, --docker-config string   Path to docker config.json file. This value is optional for publicly accessible images.
                               However, it is strongly encouraged for public Docker Hub images,
                               due to the rate limit imposed for unauthenticated requests. (env: PFLT_DOCKERCONFIG)
      --logfile string         Where the execution logfile will be written. (env: PFLT_LOGFILE)
      --loglevel string        The verbosity of the preflight tool itself. Ex. warn, debug, trace, info, error. (env: PFLT_LOGLEVEL)

2022/08/24 16:11:12 certification project id: ospid-62423-f26c346-6cc1dc7fae92 is improperly formatted see help command for instructions on obtaining proper value

```

Signed-off-by: Adam D. Cornett <adc@redhat.com>

openshift-ci[bot]: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773#" title="Author self-approved">acornett21</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=redhat-openshift-ecosystem%2Fopenshift-preflight).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/redhat-openshift-ecosystem/openshift-preflight/blob/main/OWNERS)~~ [acornett21]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
dcibot: -  SUCCESS https://www.distributed-ci.io/jobs/8d564b6c-00ab-4bf5-ada8-23fb5b1d0884/jobStates
 from https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773
dcibot: -  SUCCESS https://www.distributed-ci.io/jobs/431f1de8-259b-4407-8749-ec0ec72a48c8/jobStates
 from https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773
dcibot: -  SUCCESS https://www.distributed-ci.io/jobs/3b88e1f9-0d2d-4e09-b57a-1d978f3f7525/jobStates
 from https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773
dcibot: -  SUCCESS https://www.distributed-ci.io/jobs/64515af8-03fa-46c6-b7db-3cbdc3fa9348/jobStates
 from https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773
acornett21: /test 4.8-images
dcibot: -  SUCCESS https://www.distributed-ci.io/jobs/77ea640d-825a-4017-84ce-933a508c8a91/jobStates
 from https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773
openshift-ci[bot]: [APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773#" title="Author self-approved">acornett21</a>*, *<a href="https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773#pullrequestreview-1086039724" title="LGTM">komish</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=redhat-openshift-ecosystem%2Fopenshift-preflight).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/redhat-openshift-ecosystem/openshift-preflight/blob/main/OWNERS)~~ [acornett21,komish]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
acornett21: Putting this on hold, there is another use case that we've never covered. ie a user never gives an `ospid` but provides a legacy project id of `123-456-789-000`. Might as well try to cover that case as well.
openshift-ci[bot]: New changes are detected. LGTM label has been removed.
dcibot: -  SUCCESS https://www.distributed-ci.io/jobs/fa7924c0-d825-495d-80af-c9814f8570e0/jobStates
 from https://github.com/redhat-openshift-ecosystem/openshift-preflight/pull/773

Patch:
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 6930dd4..885264b 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -11,6 +11,15 @@ jobs:
     runs-on: ubuntu-latest
     steps:
     - uses: actions/checkout@v2
+    - name: Cache build and module paths
+      uses: actions/cache@v3
+      with:
+        path: |
+          ~/.cache/go-build
+          ~/go/pkg/mod
+        key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
+        restore-keys: |
+          ${{ runner.os }}-go-
 
     - name: Install system deps
       run: 'sudo apt update && sudo apt install -y libgpgme-dev libbtrfs-dev libdevmapper-dev'
@@ -18,7 +27,7 @@ jobs:
     - name: Set up Go
       uses: actions/setup-go@v2
       with:
-        go-version: 1.17
+        go-version: 1.19
 
     - name: Tidy
       run: make tidy
@@ -29,9 +38,13 @@ jobs:
     - name: Format
       run: make fmt
 
+    - name: Run golangci linting checks
+      run: make lint
+
     - name: Test
       run: make cover
 
+
     - name: Convert coverage.out to coverage.lcov
       uses: jandelgado/gcov2lcov-action@v1.0.9
     
diff --git a/.golangci.yaml b/.golangci.yaml
new file mode 100644
index 0000000..408579b
--- /dev/null
+++ b/.golangci.yaml
@@ -0,0 +1,50 @@
+run:
+  # Default timeout is 1m, up to give more room
+  timeout: 4m
+
+linters:
+  enable:
+  - asciicheck
+  - deadcode
+  - depguard
+  - gofumpt
+  - goimports
+  - importas
+  - revive
+  - misspell
+  - stylecheck
+  - tparallel
+  - unconvert
+  - unparam
+  - whitespace
+
+linters-settings:
+  importas:
+    alias:
+    - pkg: k8s.io/api/core/v1
+      alias: corev1
+    - pkg: k8s.io/apimachinery/pkg/apis/meta/v1
+      alias: metav1
+    - pkg: k8s.io/apimachinery/pkg/api/errors
+      alias: apierrors
+    - pkg: github.com/operator-framework/api/pkg/operators/v1alpha1
+      alias: operatorsv1alpha1
+    - pkg: github.com/operator-framework/api/pkg/operators/v1
+      alias: operatorsv1
+    - pkg: github.com/openshift/api/image/v1
+      alias: imagestreamv1
+  revive:
+    rules:
+    - name: dot-imports
+      severity: warning
+      disabled: true
+  stylecheck:
+    dot-import-whitelist:
+      - github.com/onsi/gomega
+      - github.com/onsi/ginkgo
+      - github.com/onsi/ginkgo/v2
+  goimports:
+    local-prefixes: github.com/redhat-openshift-ecosystem/openshift-preflight
+
+output:
+  format: tab
diff --git a/Dockerfile b/Dockerfile
index fc59abd..fd2a310 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,7 +3,7 @@ ARG release_tag=0.0.0
 ARG ARCH=amd64
 ARG OS=linux
 
-FROM docker.io/golang:1.17 AS builder
+FROM docker.io/golang:1.19 AS builder
 ARG quay_expiration
 ARG release_tag
 ARG ARCH
diff --git a/Makefile b/Makefile
index ff6f61c..1040f5e 100644
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,7 @@ fmt: gofumpt
 
 .PHONY: tidy
 tidy:
-	go mod tidy -compat=1.17
+	go mod tidy
 	git diff --exit-code
 
 .PHONY: image-build
@@ -61,6 +61,10 @@ cover:
 vet:
 	go vet ./...
 
+.PHONY: lint
+lint: golangci-lint ## Run golangci-lint linter checks.
+	$(GOLANGCI_LINT) run
+	
 .PHONY: test-e2e
 test-e2e:
 	./test/e2e/operator-test.sh
@@ -79,6 +83,12 @@ clean:
 	$(foreach GOARCH, $(ARCHITECTURES),\
 	$(shell if [ -f "$(BINARY)-$(GOOS)-$(GOARCH)" ]; then rm -f $(BINARY)-$(GOOS)-$(GOARCH); fi)))
 
+GOLANGCI_LINT = $(shell pwd)/bin/golangci-lint
+GOLANGCI_LINT_VERSION ?= v1.48.0
+golangci-lint: $(GOLANGCI_LINT)
+$(GOLANGCI_LINT):
+	$(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION))
+
 GOFUMPT = $(shell pwd)/bin/gofumpt
 gofumpt: ## Download envtest-setup locally if necessary.
 	$(call go-install-tool,$(GOFUMPT),mvdan.cc/gofumpt@latest)
diff --git a/README.md b/README.md
index 284d61c..d1de4a0 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,9 @@ subject to change, and some features are not fully implemented.
 
 ## Requirements
 
-The preflight binary currently requires that you have the following tools installed,
+For running the Preflight binary, the host or VM must have at least RHEL 8.5, CentOS 8.5 or Fedora 35 installed.
+
+The Preflight binary currently requires that you have the following tools installed,
 functional, and in your path.
 
 | Name             | Tool cli          | Minimum version |
diff --git a/certification/artifacts/artifacts.go b/certification/artifacts/artifacts.go
index c2b8a03..477b8b8 100644
--- a/certification/artifacts/artifacts.go
+++ b/certification/artifacts/artifacts.go
@@ -40,7 +40,7 @@ func Reset() {
 // Returns the full path (including the artifacts dir)
 func WriteFile(filename, contents string) (string, error) {
 	artifactDir := ads
-	artifactDir, err := createArtifactsDir(artifactDir)
+	_, err := createArtifactsDir(artifactDir)
 	if err != nil {
 		// Fatal does an os.Exit. If we can't create the artifacts directory,
 		// we can't continue.
diff --git a/certification/engine/engine.go b/certification/engine/engine.go
index 2298ec4..1b94853 100644
--- a/certification/engine/engine.go
+++ b/certification/engine/engine.go
@@ -48,6 +48,8 @@ func NewForConfig(ctx context.Context, cfg certification.Config) (CheckEngine, e
 }
 
 // initializeChecks configures checks for a given policy p using cfg as needed.
+//
+//nolint:unparam // ctx is unused. Keep for future use.
 func initializeChecks(ctx context.Context, p policy.Policy, cfg certification.Config) ([]certification.Check, error) {
 	switch p {
 	case policy.PolicyOperator:
diff --git a/certification/internal/authn/keychain.go b/certification/internal/authn/keychain.go
index edc85cf..a8a2799 100644
--- a/certification/internal/authn/keychain.go
+++ b/certification/internal/authn/keychain.go
@@ -46,7 +46,7 @@ func PreflightKeychain(opts ...PreflightKeychainOption) craneauthn.Keychain {
 // and will be passed to crane,.
 //
 // If the dockerConfig value is empty, assume Anonymous.
-// If the file cannot be found or read, that constitues an error.
+// If the file cannot be found or read, that constitutes an error.
 // Can return os.IsNotExist.
 func (k *preflightKeychain) Resolve(target craneauthn.Resource) (craneauthn.Authenticator, error) {
 	log.Trace("entering preflight keychain Resolve")
diff --git a/certification/internal/bundle/bundle.go b/certification/internal/bundle/bundle.go
index 7bc0bd5..0e12bcf 100644
--- a/certification/internal/bundle/bundle.go
+++ b/certification/internal/bundle/bundle.go
@@ -2,25 +2,21 @@ package bundle
 
 import (
 	"context"
-	"errors"
 	"fmt"
 	"io"
 	"os"
 	"path/filepath"
 	"strings"
 
-	rbacv1 "k8s.io/api/rbac/v1"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
 
 	"github.com/blang/semver"
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+	"github.com/operator-framework/api/pkg/manifests"
 	log "github.com/sirupsen/logrus"
+	rbacv1 "k8s.io/api/rbac/v1"
 	"sigs.k8s.io/yaml"
 )
 
-// versionsKey is the OpenShift versions in annotations.yaml that lists the versions allowed for an operator
-const versionsKey = "com.redhat.openshift.versions"
-
 // This table signifies what the NEXT release of OpenShift will
 // deprecate, not what it matches up to.
 var ocpToKubeVersion = map[string]string{
@@ -54,19 +50,19 @@ func Validate(ctx context.Context, operatorSdk operatorSdk, imagePath string) (*
 	if err != nil {
 		return nil, fmt.Errorf("could not open annotations.yaml: %v", err)
 	}
-	annotations, err := GetAnnotations(ctx, annotationsFile)
+	annotations, err := LoadAnnotations(ctx, annotationsFile)
 	if err != nil {
 		return nil, fmt.Errorf("unable to get annotations.yaml from the bundle: %v", err)
 	}
 
-	if versions, ok := annotations[versionsKey]; ok {
+	if annotations.OpenshiftVersions != "" {
 		// Check that the label range contains >= 4.9
-		targetVersion, err := targetVersion(versions)
+		targetVersion, err := targetVersion(annotations.OpenshiftVersions)
 		if err != nil {
 			// Could not parse the version, which probably means the annotation is invalid
 			return nil, fmt.Errorf("%v", err)
 		}
-		if k8sVer, ok := ocpToKubeVersion[targetVersion]; ok {
+		if k8sVer, found := ocpToKubeVersion[targetVersion]; found {
 			log.Debugf("OpenShift %s detected in annotations. Running with additional checks enabled.", targetVersion)
 			opts.OptionalValues = make(map[string]string)
 			opts.OptionalValues["k8s-version"] = k8sVer
@@ -138,100 +134,33 @@ func cleanStringToGetTheVersionToParse(value string) string {
 	return value
 }
 
-// GetAnnotations accepts a context, and an io.Reader that is expected to provide
-// the annotations.yaml, and parses the annotations from there
-func GetAnnotations(ctx context.Context, r io.Reader) (map[string]string, error) {
-	fileContents, err := io.ReadAll(r)
+// LoadAnnotations reads an operator bundle's annotations.yaml from r.
+func LoadAnnotations(ctx context.Context, r io.Reader) (*Annotations, error) {
+	annFile, err := io.ReadAll(r)
 	if err != nil {
 		return nil, fmt.Errorf("fail to read metadata/annotation.yaml file in bundle: %v", err)
 	}
 
-	annotations, err := ExtractAnnotationsBytes(ctx, fileContents)
-	if err != nil {
-		return nil, fmt.Errorf("metadata/annotations.yaml found but is malformed: %v", err)
-	}
-
-	return annotations, nil
-}
-
-// extractAnnotationsBytes reads the annotation data read from a file and returns the expected format for that yaml
-// represented as a map[string]string.
-func ExtractAnnotationsBytes(ctx context.Context, annotationBytes []byte) (map[string]string, error) {
-	type metadata struct {
-		Annotations map[string]string
-	}
-
-	if len(annotationBytes) == 0 {
-		return nil, errors.New("the annotations file was empty")
-	}
-
-	var bundleMeta metadata
-	if err := yaml.Unmarshal(annotationBytes, &bundleMeta); err != nil {
-		return nil, fmt.Errorf("metadata/annotations.yaml found but is malformed: %v", err)
-	}
-
-	return bundleMeta.Annotations, nil
-}
-
-func GetCsvFilePathFromBundle(imageDir string) (string, error) {
-	log.Trace("reading clusterserviceversion file from the bundle")
-	log.Debug("image directory is ", imageDir)
-	matches, err := filepath.Glob(filepath.Join(imageDir, "manifests", "*.clusterserviceversion.yaml"))
-	if err != nil {
-		return "", fmt.Errorf("glob pattern is malformed: %v", err)
-	}
-	if len(matches) == 0 {
-		return "", fmt.Errorf("unable to find clusterserviceversion file in the bundle image: %v", os.ErrNotExist)
-	}
-	if len(matches) > 1 {
-		return "", fmt.Errorf("more than one CSV file detected in bundle")
-	}
-	log.Debugf("The path to csv file is %s", matches[0])
-	return matches[0], nil
-}
-
-func csvFromReader(ctx context.Context, csvReader io.Reader) (*operatorv1alpha1.ClusterServiceVersion, error) {
-	var csv operatorv1alpha1.ClusterServiceVersion
-	bts, err := io.ReadAll(csvReader)
-	if err != nil {
-		return nil, fmt.Errorf("could not get CSV from reader: %v", err)
+	if len(annFile) == 0 {
+		return nil, fmt.Errorf("annotations file was empty")
 	}
-	err = yaml.Unmarshal(bts, &csv)
-	if err != nil {
-		return nil, fmt.Errorf("malformed CSV detected: %v", err)
-	}
-
-	return &csv, nil
-}
 
-func GetSupportedInstallModes(ctx context.Context, csvReader io.Reader) (map[string]bool, error) {
-	csv, err := csvFromReader(ctx, csvReader)
-	if err != nil {
-		return nil, err
+	var annotationsFile AnnotationsFile
+	if err := yaml.Unmarshal(annFile, &annotationsFile); err != nil {
+		return nil, fmt.Errorf("unable to load the annotations file: %v", err)
 	}
 
-	installedModes := make(map[string]bool, len(csv.Spec.InstallModes))
-	for _, v := range csv.Spec.InstallModes {
-		if v.Supported {
-			installedModes[string(v.Type)] = true
-		}
-	}
-	return installedModes, nil
+	return &annotationsFile.Annotations, nil
 }
 
 // GetSecurityContextConstraints returns an string array of SCC resource names requested by the operator as specified
 // in the csv
-func GetSecurityContextConstraints(ctx context.Context, csvReader io.Reader) ([]string, error) {
-	var csv operatorv1alpha1.ClusterServiceVersion
-	bts, err := io.ReadAll(csvReader)
-	if err != nil {
-		return nil, fmt.Errorf("could not get CSV from reader: %v", err)
-	}
-	err = yaml.Unmarshal(bts, &csv)
+func GetSecurityContextConstraints(ctx context.Context, bundlePath string) ([]string, error) {
+	bundle, err := manifests.GetBundleFromDir(bundlePath)
 	if err != nil {
-		return nil, fmt.Errorf("malformed CSV detected: %v", err)
+		return nil, fmt.Errorf("could not get bundle from dir: %s: %v", bundlePath, err)
 	}
-	for _, cp := range csv.Spec.InstallStrategy.StrategySpec.ClusterPermissions {
+	for _, cp := range bundle.CSV.Spec.InstallStrategy.StrategySpec.ClusterPermissions {
 		for _, rule := range cp.Rules {
 			if hasSCCApiGroup(rule) && hasSCCResource(rule) {
 				return rule.ResourceNames, nil
diff --git a/certification/internal/bundle/types.go b/certification/internal/bundle/types.go
new file mode 100644
index 0000000..2402689
--- /dev/null
+++ b/certification/internal/bundle/types.go
@@ -0,0 +1,13 @@
+package bundle
+
+import "github.com/operator-framework/api/pkg/manifests"
+
+type AnnotationsFile struct {
+	Annotations Annotations `json:"annotations" yaml:"annotations"`
+}
+
+type Annotations struct {
+	manifests.Annotations
+
+	OpenshiftVersions string `json:"com.redhat.openshift.versions,omitempty" yaml:"com.redhat.openshift.versions,omitempty"`
+}
diff --git a/certification/internal/engine/engine.go b/certification/internal/engine/engine.go
index d847dff..245eabf 100644
--- a/certification/internal/engine/engine.go
+++ b/certification/internal/engine/engine.go
@@ -18,9 +18,6 @@ import (
 	"sync"
 	"time"
 
-	"github.com/google/go-containerregistry/pkg/crane"
-	"github.com/google/go-containerregistry/pkg/name"
-	"github.com/google/go-containerregistry/pkg/v1/cache"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/authn"
@@ -28,6 +25,10 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/rpm"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	"github.com/google/go-containerregistry/pkg/crane"
+	"github.com/google/go-containerregistry/pkg/name"
+	"github.com/google/go-containerregistry/pkg/v1/cache"
 	log "github.com/sirupsen/logrus"
 )
 
@@ -263,7 +264,7 @@ func generateBundleHash(bundlePath string) (string, error) {
 
 	hashBuffer := bytes.Buffer{}
 
-	fs.WalkDir(fileSystem, ".", func(path string, d fs.DirEntry, err error) error {
+	_ = fs.WalkDir(fileSystem, ".", func(path string, d fs.DirEntry, err error) error {
 		if err != nil {
 			return fmt.Errorf("could not read bundle directory: %s: %w", path, err)
 		}
@@ -318,7 +319,6 @@ func untar(dst string, r io.Reader) error {
 		header, err := tr.Next()
 
 		switch {
-
 		// if no more files are found return
 		case err == io.EOF:
 			return nil
@@ -341,7 +341,6 @@ func untar(dst string, r io.Reader) error {
 
 		// check the file type
 		switch header.Typeflag {
-
 		// if its a dir and it doesn't exist create it
 		case tar.TypeDir:
 			if _, err := os.Stat(target); err != nil {
@@ -379,6 +378,8 @@ func untar(dst string, r io.Reader) error {
 
 // writeCertImage takes imageRef and writes it to disk as JSON representing a pyxis.CertImage
 // struct. The file is written at path certification.DefaultCertImageFilename.
+//
+//nolint:unparam // ctx is unused. Keep for future use.
 func writeCertImage(ctx context.Context, imageRef certification.ImageReference) error {
 	config, err := imageRef.ImageInfo.ConfigFile()
 	if err != nil {
@@ -423,7 +424,7 @@ func writeCertImage(ctx context.Context, imageRef certification.ImageReference)
 		}
 
 		pyxisLayer := pyxis.Layer{
-			LayerId: diffid.String(),
+			LayerID: diffid.String(),
 			Size:    written,
 		}
 		layerSizes = append(layerSizes, pyxisLayer)
@@ -474,16 +475,16 @@ func writeCertImage(ctx context.Context, imageRef certification.ImageReference)
 		SumLayerSizeBytes: sumLayersSizeBytes,
 		// This is an assumption that the DiffIDs are in order from base up.
 		// Need more evidence that this is always the case.
-		UncompressedTopLayerId: config.RootFS.DiffIDs[0].String(),
+		UncompressedTopLayerID: config.RootFS.DiffIDs[0].String(),
 	}
 
 	// calling MarshalIndent so the json file written to disk is human-readable when opened
-	certImageJson, err := json.MarshalIndent(certImage, "", "    ")
+	certImageJSON, err := json.MarshalIndent(certImage, "", "    ")
 	if err != nil {
 		return fmt.Errorf("could not marshal cert image: %w", err)
 	}
 
-	fileName, err := artifacts.WriteFile(certification.DefaultCertImageFilename, string(certImageJson))
+	fileName, err := artifacts.WriteFile(certification.DefaultCertImageFilename, string(certImageJSON))
 	if err != nil {
 		return fmt.Errorf("failed to save file to artifacts directory: %w", err)
 	}
@@ -507,8 +508,7 @@ func writeRPMManifest(ctx context.Context, containerFSPath string) error {
 	// covert rpm struct to pxyis struct
 	rpms := make([]pyxis.RPM, 0, len(pkgList))
 	for _, packageInfo := range pkgList {
-
-		var bgName, endChop, srpmNevra, pgpKeyId string
+		var bgName, endChop, srpmNevra, pgpKeyID string
 
 		// accounting for the fact that not all packages have a source rpm
 		if len(packageInfo.SourceRpm) > 0 {
@@ -521,16 +521,16 @@ func writeRPMManifest(ctx context.Context, containerFSPath string) error {
 		if len(packageInfo.PGP) > 0 {
 			matches := regexp.MustCompile(".*, Key ID (.*)").FindStringSubmatch(packageInfo.PGP)
 			if matches != nil {
-				pgpKeyId = matches[1]
+				pgpKeyID = matches[1]
 			} else {
 				log.Debugf("string did not match the format required: %s", packageInfo.PGP)
-				pgpKeyId = ""
+				pgpKeyID = ""
 			}
 		}
 
 		pyxisRPM := pyxis.RPM{
 			Architecture: packageInfo.Arch,
-			Gpg:          pgpKeyId,
+			Gpg:          pgpKeyID,
 			Name:         packageInfo.Name,
 			Nvra:         fmt.Sprintf("%s-%s-%s.%s", packageInfo.Name, packageInfo.Version, packageInfo.Release, packageInfo.Arch),
 			Release:      packageInfo.Release,
@@ -548,12 +548,12 @@ func writeRPMManifest(ctx context.Context, containerFSPath string) error {
 	}
 
 	// calling MarshalIndent so the json file written to disk is human-readable when opened
-	rpmManifestJson, err := json.MarshalIndent(rpmManifest, "", "    ")
+	rpmManifestJSON, err := json.MarshalIndent(rpmManifest, "", "    ")
 	if err != nil {
 		return fmt.Errorf("could not marshal rpm manifest: %w", err)
 	}
 
-	fileName, err := artifacts.WriteFile(certification.DefaultRPMManifestFilename, string(rpmManifestJson))
+	fileName, err := artifacts.WriteFile(certification.DefaultRPMManifestFilename, string(rpmManifestJSON))
 	if err != nil {
 		return fmt.Errorf("failed to save file to artifacts directory: %w", err)
 	}
diff --git a/certification/internal/openshift/openshift.go b/certification/internal/openshift/openshift.go
index cd7ec71..081f5f3 100644
--- a/certification/internal/openshift/openshift.go
+++ b/certification/internal/openshift/openshift.go
@@ -4,14 +4,13 @@ import (
 	"context"
 	"fmt"
 
-	log "github.com/sirupsen/logrus"
-
 	imagestreamv1 "github.com/openshift/api/image/v1"
-	operatorv1 "github.com/operator-framework/api/pkg/operators/v1"
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+	operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+	log "github.com/sirupsen/logrus"
 	corev1 "k8s.io/api/core/v1"
 	rbacv1 "k8s.io/api/rbac/v1"
-	k8serr "k8s.io/apimachinery/pkg/api/errors"
+	apierrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	apiruntime "k8s.io/apimachinery/pkg/runtime"
 	crclient "sigs.k8s.io/controller-runtime/pkg/client"
@@ -32,10 +31,10 @@ func NewClient(client crclient.Client) Client {
 }
 
 func AddSchemes(scheme *apiruntime.Scheme) error {
-	if err := operatorv1.AddToScheme(scheme); err != nil {
+	if err := operatorsv1.AddToScheme(scheme); err != nil {
 		return err
 	}
-	if err := operatorv1alpha1.AddToScheme(scheme); err != nil {
+	if err := operatorsv1alpha1.AddToScheme(scheme); err != nil {
 		return err
 	}
 	if err := imagestreamv1.AddToScheme(scheme); err != nil {
@@ -56,7 +55,7 @@ func (oe *openshiftClient) CreateNamespace(ctx context.Context, name string) (*c
 		},
 	}
 	err := oe.Client.Create(ctx, &nsSpec, &crclient.CreateOptions{})
-	if k8serr.IsAlreadyExists(err) {
+	if apierrors.IsAlreadyExists(err) {
 		return &nsSpec, fmt.Errorf("could not create namespace: %s: %w: %v", name, ErrAlreadyExists, err)
 	}
 	if err != nil {
@@ -73,7 +72,7 @@ func (oe *openshiftClient) DeleteNamespace(ctx context.Context, name string) err
 		},
 	}
 	err := oe.Client.Delete(ctx, &nsSpec, &crclient.DeleteOptions{})
-	if err != nil && !k8serr.IsNotFound(err) {
+	if err != nil && !apierrors.IsNotFound(err) {
 		return fmt.Errorf("could not delete namespace: %s: %v", name, err)
 	}
 
@@ -92,7 +91,7 @@ func (oe *openshiftClient) GetNamespace(ctx context.Context, name string) (*core
 	err := oe.Client.Get(ctx, crclient.ObjectKey{
 		Name: name,
 	}, &nsSpec)
-	if k8serr.IsNotFound(err) {
+	if apierrors.IsNotFound(err) {
 		return nil, fmt.Errorf("could not retrieve namespace: %s: %w: %v", name, ErrNotFound, err)
 	}
 	if err != nil {
@@ -102,19 +101,19 @@ func (oe *openshiftClient) GetNamespace(ctx context.Context, name string) (*core
 }
 
 // CreateOperatorGroup can return an ErrAlreadyExists
-func (oe *openshiftClient) CreateOperatorGroup(ctx context.Context, data OperatorGroupData, namespace string) (*operatorv1.OperatorGroup, error) {
+func (oe *openshiftClient) CreateOperatorGroup(ctx context.Context, data OperatorGroupData, namespace string) (*operatorsv1.OperatorGroup, error) {
 	log.Tracef("Creating OperatorGroup %q in namespace %q", data.Name, namespace)
-	operatorGroup := &operatorv1.OperatorGroup{
+	operatorGroup := &operatorsv1.OperatorGroup{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      data.Name,
 			Namespace: namespace,
 		},
-		Spec: operatorv1.OperatorGroupSpec{
+		Spec: operatorsv1.OperatorGroupSpec{
 			TargetNamespaces: data.TargetNamespaces,
 		},
 	}
 	err := oe.Client.Create(ctx, operatorGroup)
-	if k8serr.IsAlreadyExists(err) {
+	if apierrors.IsAlreadyExists(err) {
 		return operatorGroup, fmt.Errorf("could not create operatorgroup: %s/%s: %w: %v", namespace, data.Name, ErrAlreadyExists, err)
 	}
 	if err != nil {
@@ -126,7 +125,7 @@ func (oe *openshiftClient) CreateOperatorGroup(ctx context.Context, data Operato
 
 func (oe *openshiftClient) DeleteOperatorGroup(ctx context.Context, name string, namespace string) error {
 	log.Tracef("Deleting OperatorGroup %q in namespace %q", name, namespace)
-	operatorGroup := operatorv1.OperatorGroup{
+	operatorGroup := operatorsv1.OperatorGroup{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      name,
 			Namespace: namespace,
@@ -141,14 +140,14 @@ func (oe *openshiftClient) DeleteOperatorGroup(ctx context.Context, name string,
 }
 
 // GetOperatorGroup can return an ErrNotFound
-func (oe *openshiftClient) GetOperatorGroup(ctx context.Context, name string, namespace string) (*operatorv1.OperatorGroup, error) {
+func (oe *openshiftClient) GetOperatorGroup(ctx context.Context, name string, namespace string) (*operatorsv1.OperatorGroup, error) {
 	log.Tracef("fetching operatorgroup %q from namespace %q", name, namespace)
-	operatorGroup := operatorv1.OperatorGroup{}
+	operatorGroup := operatorsv1.OperatorGroup{}
 	err := oe.Client.Get(ctx, crclient.ObjectKey{
 		Name:      name,
 		Namespace: namespace,
 	}, &operatorGroup)
-	if k8serr.IsNotFound(err) {
+	if apierrors.IsNotFound(err) {
 		return nil, fmt.Errorf("could not retrieve operatorgroup: %s/%s: %w: %v", namespace, name, ErrNotFound, err)
 	}
 	if err != nil {
@@ -173,7 +172,7 @@ func (oe openshiftClient) CreateSecret(ctx context.Context, name string, content
 		Type:       secretType,
 	}
 	err := oe.Client.Create(ctx, &secret, &crclient.CreateOptions{})
-	if k8serr.IsAlreadyExists(err) {
+	if apierrors.IsAlreadyExists(err) {
 		return &secret, fmt.Errorf("could not create secret: %s/%s: %w: %v", namespace, name, ErrAlreadyExists, err)
 	}
 	if err != nil {
@@ -207,8 +206,8 @@ func (oe openshiftClient) GetSecret(ctx context.Context, name string, namespace
 		Name:      name,
 		Namespace: namespace,
 	}, &secret)
-	if k8serr.IsNotFound(err) {
-		return nil, fmt.Errorf("could not retreive secret %s/%s: %w: %v", namespace, name, ErrNotFound, err)
+	if apierrors.IsNotFound(err) {
+		return nil, fmt.Errorf("could not retrieve secret %s/%s: %w: %v", namespace, name, ErrNotFound, err)
 	}
 	if err != nil {
 		return nil, fmt.Errorf("could not retrieve secret %s/%s: %v", namespace, name, err)
@@ -217,22 +216,22 @@ func (oe openshiftClient) GetSecret(ctx context.Context, name string, namespace
 }
 
 // CreateCatalogSource can return an ErrAlreadyExists
-func (oe openshiftClient) CreateCatalogSource(ctx context.Context, data CatalogSourceData, namespace string) (*operatorv1alpha1.CatalogSource, error) {
+func (oe openshiftClient) CreateCatalogSource(ctx context.Context, data CatalogSourceData, namespace string) (*operatorsv1alpha1.CatalogSource, error) {
 	log.Tracef("Creating CatalogSource %q in namespace %q", data.Name, namespace)
-	catalogSource := &operatorv1alpha1.CatalogSource{
+	catalogSource := &operatorsv1alpha1.CatalogSource{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      data.Name,
 			Namespace: namespace,
 		},
-		Spec: operatorv1alpha1.CatalogSourceSpec{
-			SourceType:  operatorv1alpha1.SourceTypeGrpc,
+		Spec: operatorsv1alpha1.CatalogSourceSpec{
+			SourceType:  operatorsv1alpha1.SourceTypeGrpc,
 			Image:       data.Image,
 			DisplayName: data.Name,
 			Secrets:     data.Secrets,
 		},
 	}
 	err := oe.Client.Create(ctx, catalogSource)
-	if k8serr.IsAlreadyExists(err) {
+	if apierrors.IsAlreadyExists(err) {
 		return catalogSource, fmt.Errorf("could not create catalogsource: %s/%s: %w: %v", namespace, data.Name, ErrAlreadyExists, err)
 	}
 	if err != nil {
@@ -243,7 +242,7 @@ func (oe openshiftClient) CreateCatalogSource(ctx context.Context, data CatalogS
 
 func (oe *openshiftClient) DeleteCatalogSource(ctx context.Context, name string, namespace string) error {
 	log.Tracef("Deleting CatalogSource %q in namespace %q", name, namespace)
-	catalogSource := operatorv1alpha1.CatalogSource{
+	catalogSource := operatorsv1alpha1.CatalogSource{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      name,
 			Namespace: namespace,
@@ -257,14 +256,14 @@ func (oe *openshiftClient) DeleteCatalogSource(ctx context.Context, name string,
 }
 
 // GetCatalogSource cat return an ErrNotFound
-func (oe *openshiftClient) GetCatalogSource(ctx context.Context, name string, namespace string) (*operatorv1alpha1.CatalogSource, error) {
+func (oe *openshiftClient) GetCatalogSource(ctx context.Context, name string, namespace string) (*operatorsv1alpha1.CatalogSource, error) {
 	log.Tracef("fetching catalogsource: %q", name)
-	catalogSource := &operatorv1alpha1.CatalogSource{}
+	catalogSource := &operatorsv1alpha1.CatalogSource{}
 	err := oe.Client.Get(ctx, crclient.ObjectKey{
 		Name:      name,
 		Namespace: namespace,
 	}, catalogSource)
-	if k8serr.IsNotFound(err) {
+	if apierrors.IsNotFound(err) {
 		return nil, fmt.Errorf("could not retrieve catalogsource: %s/%s: %w: %v", namespace, name, ErrNotFound, err)
 	}
 	if err != nil {
@@ -274,14 +273,14 @@ func (oe *openshiftClient) GetCatalogSource(ctx context.Context, name string, na
 }
 
 // CreateSubscription can return an ErrAlreadyExists
-func (oe openshiftClient) CreateSubscription(ctx context.Context, data SubscriptionData, namespace string) (*operatorv1alpha1.Subscription, error) {
+func (oe openshiftClient) CreateSubscription(ctx context.Context, data SubscriptionData, namespace string) (*operatorsv1alpha1.Subscription, error) {
 	log.Tracef("Creating Subscription %q in namespace %q", data.Name, namespace)
-	subscription := &operatorv1alpha1.Subscription{
+	subscription := &operatorsv1alpha1.Subscription{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      data.Name,
 			Namespace: namespace,
 		},
-		Spec: &operatorv1alpha1.SubscriptionSpec{
+		Spec: &operatorsv1alpha1.SubscriptionSpec{
 			CatalogSource:          data.CatalogSource,
 			CatalogSourceNamespace: data.CatalogSourceNamespace,
 			Channel:                data.Channel,
@@ -289,7 +288,7 @@ func (oe openshiftClient) CreateSubscription(ctx context.Context, data Subscript
 		},
 	}
 	err := oe.Client.Create(ctx, subscription)
-	if k8serr.IsAlreadyExists(err) {
+	if apierrors.IsAlreadyExists(err) {
 		return subscription, fmt.Errorf("could not create subscription: %s/%s: %w: %v", namespace, data.Name, ErrAlreadyExists, err)
 	}
 	if err != nil {
@@ -299,14 +298,14 @@ func (oe openshiftClient) CreateSubscription(ctx context.Context, data Subscript
 }
 
 // GetSubscription can return an ErrNotFound
-func (oe *openshiftClient) GetSubscription(ctx context.Context, name string, namespace string) (*operatorv1alpha1.Subscription, error) {
+func (oe *openshiftClient) GetSubscription(ctx context.Context, name string, namespace string) (*operatorsv1alpha1.Subscription, error) {
 	log.Tracef("fetching subscription %q from namespace %q", name, namespace)
-	subscription := &operatorv1alpha1.Subscription{}
+	subscription := &operatorsv1alpha1.Subscription{}
 	err := oe.Client.Get(ctx, crclient.ObjectKey{
 		Name:      name,
 		Namespace: namespace,
 	}, subscription)
-	if k8serr.IsNotFound(err) {
+	if apierrors.IsNotFound(err) {
 		return nil, fmt.Errorf("could not retrieve subscription: %s/%s: %w: %v", namespace, name, ErrNotFound, err)
 	}
 	if err != nil {
@@ -318,7 +317,7 @@ func (oe *openshiftClient) GetSubscription(ctx context.Context, name string, nam
 func (oe openshiftClient) DeleteSubscription(ctx context.Context, name string, namespace string) error {
 	log.Tracef("Deleting Subscription %q in namespace %q", name, namespace)
 
-	subscription := &operatorv1alpha1.Subscription{
+	subscription := &operatorsv1alpha1.Subscription{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      name,
 			Namespace: namespace,
@@ -332,14 +331,14 @@ func (oe openshiftClient) DeleteSubscription(ctx context.Context, name string, n
 }
 
 // GetCSV can return an ErrNotFound
-func (oe *openshiftClient) GetCSV(ctx context.Context, name string, namespace string) (*operatorv1alpha1.ClusterServiceVersion, error) {
+func (oe *openshiftClient) GetCSV(ctx context.Context, name string, namespace string) (*operatorsv1alpha1.ClusterServiceVersion, error) {
 	log.Debugf("fetching csv %q from namespace %q", name, namespace)
-	csv := &operatorv1alpha1.ClusterServiceVersion{}
+	csv := &operatorsv1alpha1.ClusterServiceVersion{}
 	err := oe.Client.Get(ctx, crclient.ObjectKey{
 		Name:      name,
 		Namespace: namespace,
 	}, csv)
-	if k8serr.IsNotFound(err) {
+	if apierrors.IsNotFound(err) {
 		return nil, fmt.Errorf("could not retrieve csv: %s/%s: %w: %v", namespace, name, ErrNotFound, err)
 	}
 	if err != nil {
@@ -406,7 +405,7 @@ func (oe *openshiftClient) CreateRoleBinding(ctx context.Context, data RoleBindi
 		RoleRef:  roleObj,
 	}
 	err := oe.Client.Create(ctx, &roleBindingObj, &crclient.CreateOptions{})
-	if k8serr.IsAlreadyExists(err) {
+	if apierrors.IsAlreadyExists(err) {
 		return &roleBindingObj, fmt.Errorf("could not create rolebinding: %s/%s: %w: %v", namespace, data.Name, ErrAlreadyExists, err)
 	}
 	if err != nil {
@@ -434,7 +433,7 @@ func (oe *openshiftClient) GetRoleBinding(ctx context.Context, name string, name
 		Name:      name,
 		Namespace: namespace,
 	}, &roleBinding)
-	if k8serr.IsNotFound(err) {
+	if apierrors.IsNotFound(err) {
 		return nil, fmt.Errorf("could not retrieve rolebinding: %s/%s: %w: %v", namespace, name, ErrNotFound, err)
 	}
 	if err != nil {
diff --git a/certification/internal/openshift/openshift_version.go b/certification/internal/openshift/openshift_version.go
index dd2d716..df866f7 100644
--- a/certification/internal/openshift/openshift_version.go
+++ b/certification/internal/openshift/openshift_version.go
@@ -5,8 +5,9 @@ import (
 	"fmt"
 	"os"
 
-	configv1Client "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	configv1Client "github.com/openshift/client-go/config/clientset/versioned/typed/config/v1"
 	log "github.com/sirupsen/logrus"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	ctrl "sigs.k8s.io/controller-runtime"
@@ -24,14 +25,14 @@ func GetOpenshiftClusterVersion() (runtime.OpenshiftClusterVersion, error) {
 	if err != nil {
 		return runtime.UnknownOpenshiftClusterVersion(), fmt.Errorf("unable to create a client with the provided kubeconfig: %v", err)
 	}
-	openshiftApiServer, err := configV1Client.ClusterOperators().Get(context.Background(), "openshift-apiserver", metav1.GetOptions{})
+	openshiftAPIServer, err := configV1Client.ClusterOperators().Get(context.Background(), "openshift-apiserver", metav1.GetOptions{})
 	if err != nil {
 		return runtime.UnknownOpenshiftClusterVersion(), fmt.Errorf("unable to get openshift-apiserver cluster operator: %v", err)
 	}
 
-	log.Debug(fmt.Sprintf("fetching operator version and openshift-apiserver version %s from %s", openshiftApiServer.Status.Versions, kubeConfig.Host))
+	log.Debug(fmt.Sprintf("fetching operator version and openshift-apiserver version %s from %s", openshiftAPIServer.Status.Versions, kubeConfig.Host))
 	return runtime.OpenshiftClusterVersion{
 		Name:    "OpenShift",
-		Version: openshiftApiServer.Status.Versions[1].Version,
+		Version: openshiftAPIServer.Status.Versions[1].Version,
 	}, nil
 }
diff --git a/certification/internal/openshift/types.go b/certification/internal/openshift/types.go
index c1fac69..7e9b939 100644
--- a/certification/internal/openshift/types.go
+++ b/certification/internal/openshift/types.go
@@ -3,8 +3,8 @@ package openshift
 import (
 	"context"
 
-	operatorv1 "github.com/operator-framework/api/pkg/operators/v1"
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+	operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
 	corev1 "k8s.io/api/core/v1"
 	rbacv1 "k8s.io/api/rbac/v1"
 )
@@ -42,16 +42,16 @@ type Client interface {
 	CreateSecret(ctx context.Context, name string, content map[string]string, secretType corev1.SecretType, namespace string) (*corev1.Secret, error)
 	DeleteSecret(ctx context.Context, name string, namespace string) error
 	GetSecret(ctx context.Context, name string, namespace string) (*corev1.Secret, error)
-	CreateOperatorGroup(ctx context.Context, data OperatorGroupData, namespace string) (*operatorv1.OperatorGroup, error)
+	CreateOperatorGroup(ctx context.Context, data OperatorGroupData, namespace string) (*operatorsv1.OperatorGroup, error)
 	DeleteOperatorGroup(ctx context.Context, name string, namespace string) error
-	GetOperatorGroup(ctx context.Context, name string, namespace string) (*operatorv1.OperatorGroup, error)
-	CreateCatalogSource(ctx context.Context, data CatalogSourceData, namespace string) (*operatorv1alpha1.CatalogSource, error)
+	GetOperatorGroup(ctx context.Context, name string, namespace string) (*operatorsv1.OperatorGroup, error)
+	CreateCatalogSource(ctx context.Context, data CatalogSourceData, namespace string) (*operatorsv1alpha1.CatalogSource, error)
 	DeleteCatalogSource(ctx context.Context, name string, namespace string) error
-	GetCatalogSource(ctx context.Context, name string, namespace string) (*operatorv1alpha1.CatalogSource, error)
-	CreateSubscription(ctx context.Context, data SubscriptionData, namespace string) (*operatorv1alpha1.Subscription, error)
+	GetCatalogSource(ctx context.Context, name string, namespace string) (*operatorsv1alpha1.CatalogSource, error)
+	CreateSubscription(ctx context.Context, data SubscriptionData, namespace string) (*operatorsv1alpha1.Subscription, error)
 	DeleteSubscription(ctx context.Context, name string, namespace string) error
-	GetSubscription(ctx context.Context, name string, namespace string) (*operatorv1alpha1.Subscription, error)
-	GetCSV(ctx context.Context, name string, namespace string) (*operatorv1alpha1.ClusterServiceVersion, error)
+	GetSubscription(ctx context.Context, name string, namespace string) (*operatorsv1alpha1.Subscription, error)
+	GetCSV(ctx context.Context, name string, namespace string) (*operatorsv1alpha1.ClusterServiceVersion, error)
 	GetImages(ctx context.Context) (map[string]struct{}, error)
 	CreateRoleBinding(ctx context.Context, data RoleBindingData, namespace string) (*rbacv1.RoleBinding, error)
 	GetRoleBinding(ctx context.Context, name string, namespace string) (*rbacv1.RoleBinding, error)
diff --git a/certification/internal/operatorsdk/operatorsdk.go b/certification/internal/operatorsdk/operatorsdk.go
index 3ae96d1..3e3fda8 100644
--- a/certification/internal/operatorsdk/operatorsdk.go
+++ b/certification/internal/operatorsdk/operatorsdk.go
@@ -11,6 +11,7 @@ import (
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/internal/policy/container/base_on_ubi.go b/certification/internal/policy/container/base_on_ubi.go
index 8f8ef43..74e1b95 100644
--- a/certification/internal/policy/container/base_on_ubi.go
+++ b/certification/internal/policy/container/base_on_ubi.go
@@ -4,9 +4,10 @@ import (
 	"context"
 	"fmt"
 
-	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
-	pyxis "github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
+
+	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 )
 
 var _ certification.Check = &BasedOnUBICheck{}
@@ -25,7 +26,7 @@ func NewBasedOnUbiCheck(layerHashChecker layerHashChecker) *BasedOnUBICheck {
 }
 
 func (p *BasedOnUBICheck) Validate(ctx context.Context, imgRef certification.ImageReference) (bool, error) {
-	layerHashes, err := p.getImageLayers(ctx, imgRef.ImageInfo)
+	layerHashes, err := p.getImageLayers(imgRef.ImageInfo)
 	if err != nil {
 		return false, fmt.Errorf("could not get image layers: %v", err)
 	}
@@ -34,7 +35,7 @@ func (p *BasedOnUBICheck) Validate(ctx context.Context, imgRef certification.Ima
 }
 
 // getImageLayers returns the root filesystem DiffIDs of the image.
-func (p *BasedOnUBICheck) getImageLayers(ctx context.Context, image cranev1.Image) ([]cranev1.Hash, error) {
+func (p *BasedOnUBICheck) getImageLayers(image cranev1.Image) ([]cranev1.Hash, error) {
 	configFile, err := image.ConfigFile()
 	if err != nil {
 		return nil, err
diff --git a/certification/internal/policy/container/defaults.go b/certification/internal/policy/container/defaults.go
index 98ab258..25ddad3 100644
--- a/certification/internal/policy/container/defaults.go
+++ b/certification/internal/policy/container/defaults.go
@@ -1,11 +1,3 @@
 package container
 
-import (
-	"time"
-)
-
-var (
-	checkContainerTimeout time.Duration = 10 * time.Second
-	waitContainer         time.Duration = 2 * time.Second
-	certDocumentationURL                = "https://access.redhat.com/documentation/en-us/red_hat_software_certification/8.45/html/red_hat_openshift_software_certification_policy_guide/assembly-requirements-for-container-images_openshift-sw-cert-policy-introduction"
-)
+var certDocumentationURL = "https://access.redhat.com/documentation/en-us/red_hat_software_certification/8.45/html/red_hat_openshift_software_certification_policy_guide/assembly-requirements-for-container-images_openshift-sw-cert-policy-introduction"
diff --git a/certification/internal/policy/container/has_license.go b/certification/internal/policy/container/has_license.go
index 28dd3ae..3ecdb65 100644
--- a/certification/internal/policy/container/has_license.go
+++ b/certification/internal/policy/container/has_license.go
@@ -9,12 +9,12 @@ import (
 	"path/filepath"
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	log "github.com/sirupsen/logrus"
 )
 
 const (
 	licensePath         = "/licenses"
-	newLine             = "\n"
 	minLicenseFileCount = 1
 )
 
@@ -37,6 +37,7 @@ func (p *HasLicenseCheck) Validate(ctx context.Context, imgRef certification.Ima
 	return p.validate(ctx, licenseFileList)
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *HasLicenseCheck) getDataToValidate(ctx context.Context, mountedPath string) ([]fs.DirEntry, error) {
 	fullPath := filepath.Join(mountedPath, licensePath)
 	fileinfo, err := os.Stat(fullPath)
@@ -54,6 +55,7 @@ func (p *HasLicenseCheck) getDataToValidate(ctx context.Context, mountedPath str
 	return files, nil
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *HasLicenseCheck) validate(ctx context.Context, licenseFileList []fs.DirEntry) (bool, error) {
 	nonZeroLength := false
 	for _, f := range licenseFileList {
diff --git a/certification/internal/policy/container/has_modified_files.go b/certification/internal/policy/container/has_modified_files.go
index 7131e2f..a0b8baf 100644
--- a/certification/internal/policy/container/has_modified_files.go
+++ b/certification/internal/policy/container/has_modified_files.go
@@ -8,9 +8,10 @@ import (
 	"strings"
 	"sync"
 
-	rpmdb "github.com/knqyf263/go-rpmdb/pkg"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/rpm"
+
+	rpmdb "github.com/knqyf263/go-rpmdb/pkg"
 	log "github.com/sirupsen/logrus"
 )
 
@@ -123,6 +124,8 @@ func (p *HasModifiedFilesCheck) dropFirstLayerIfEmpty(files [][]string) ([][]str
 
 // validate compares the list of LayerFiles and PackageFiles to see what PackageFiles
 // have been modified within the additional layers.
+//
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *HasModifiedFilesCheck) validate(packageFilesRef *packageFilesRef) (bool, error) {
 	layerFiles := packageFilesRef.LayerFiles
 	packageFiles := packageFilesRef.PackageFiles
@@ -180,7 +183,6 @@ func untar(pathChan chan<- string, r io.Reader) error {
 		header, err := tr.Next()
 
 		switch {
-
 		// if no more files are found return
 		case err == io.EOF:
 			close(pathChan)
@@ -204,7 +206,6 @@ func untar(pathChan chan<- string, r io.Reader) error {
 
 		// check the file type
 		switch header.Typeflag {
-
 		// if its a dir ignore it
 		case tar.TypeDir:
 			continue
diff --git a/certification/internal/policy/container/has_prohibited_packages.go b/certification/internal/policy/container/has_prohibited_packages.go
index 4500b2c..11319f2 100644
--- a/certification/internal/policy/container/has_prohibited_packages.go
+++ b/certification/internal/policy/container/has_prohibited_packages.go
@@ -7,6 +7,7 @@ import (
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/rpm"
+
 	log "github.com/sirupsen/logrus"
 )
 
@@ -37,6 +38,7 @@ func (p *HasNoProhibitedPackagesCheck) getDataToValidate(ctx context.Context, di
 	return pkgs, nil
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *HasNoProhibitedPackagesCheck) validate(ctx context.Context, pkgList []string) (bool, error) {
 	var prohibitedPackages []string
 	for _, pkg := range pkgList {
diff --git a/certification/internal/policy/container/has_required_labels.go b/certification/internal/policy/container/has_required_labels.go
index 47093a9..9a7de16 100644
--- a/certification/internal/policy/container/has_required_labels.go
+++ b/certification/internal/policy/container/has_required_labels.go
@@ -4,8 +4,9 @@ import (
 	"context"
 	"fmt"
 
-	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
+	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/internal/policy/container/has_unique_tag.go b/certification/internal/policy/container/has_unique_tag.go
index e862e9a..1928837 100644
--- a/certification/internal/policy/container/has_unique_tag.go
+++ b/certification/internal/policy/container/has_unique_tag.go
@@ -5,9 +5,10 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/google/go-containerregistry/pkg/crane"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/authn"
+
+	"github.com/google/go-containerregistry/pkg/crane"
 )
 
 var _ certification.Check = &hasUniqueTagCheck{}
diff --git a/certification/internal/policy/container/max_layers.go b/certification/internal/policy/container/max_layers.go
index e0fd66a..f0ed246 100644
--- a/certification/internal/policy/container/max_layers.go
+++ b/certification/internal/policy/container/max_layers.go
@@ -4,8 +4,9 @@ import (
 	"context"
 	"fmt"
 
-	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
+	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/internal/policy/container/runs_as_nonroot.go b/certification/internal/policy/container/runs_as_nonroot.go
index 3a6e110..f61c7e5 100644
--- a/certification/internal/policy/container/runs_as_nonroot.go
+++ b/certification/internal/policy/container/runs_as_nonroot.go
@@ -4,8 +4,9 @@ import (
 	"context"
 	"fmt"
 
-	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
+	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/internal/policy/operator/certified_images.go b/certification/internal/policy/operator/certified_images.go
index 8fe9111..dbf8cfa 100644
--- a/certification/internal/policy/operator/certified_images.go
+++ b/certification/internal/policy/operator/certified_images.go
@@ -5,12 +5,12 @@ import (
 	"fmt"
 	"path/filepath"
 
-	"github.com/google/go-containerregistry/pkg/name"
-	"github.com/operator-framework/operator-manifest-tools/pkg/image"
-	"github.com/operator-framework/operator-manifest-tools/pkg/pullspec"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
 
+	"github.com/google/go-containerregistry/pkg/name"
+	"github.com/operator-framework/operator-manifest-tools/pkg/image"
+	"github.com/operator-framework/operator-manifest-tools/pkg/pullspec"
 	log "github.com/sirupsen/logrus"
 )
 
@@ -45,6 +45,7 @@ func (p *certifiedImagesCheck) Validate(ctx context.Context, imgRef certificatio
 	return p.validate(ctx, imageDigests)
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *certifiedImagesCheck) dataToValidate(ctx context.Context, imagePath string) ([]string, error) {
 	operatorManifests, err := pullspec.FromDirectory(imagePath, pullspec.DefaultHeuristic)
 	if err != nil {
diff --git a/certification/internal/policy/operator/default.go b/certification/internal/policy/operator/default.go
index 4f34338..b60f811 100644
--- a/certification/internal/policy/operator/default.go
+++ b/certification/internal/policy/operator/default.go
@@ -3,19 +3,10 @@ package operator
 import (
 	"time"
 
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
 )
 
 const (
-	// packageKey is the packageKey in annotations.yaml that contains the package name.
-	packageKey = "operators.operatorframework.io.bundle.package.v1"
-
-	// channelKeyInBundle is the channel in annotations.yaml that contains the channel name.
-	channelKeyInBundle = "operators.operatorframework.io.bundle.channel.default.v1"
-
-	// apiEndpoint is the endpoint used to query for package uniqueness.
-	apiEndpoint = "https://catalog.redhat.com/api/containers/v1/operators/packages"
-
 	// secretName is the K8s secret name which stores the auth keys for the private registry access
 	secretName = "registry-auth-keys"
 
@@ -52,10 +43,10 @@ var (
 		"registry.access.redhat.com":        {},
 	}
 
-	prioritizedInstallModes = []string{
-		string(operatorv1alpha1.InstallModeTypeOwnNamespace),
-		string(operatorv1alpha1.InstallModeTypeSingleNamespace),
-		string(operatorv1alpha1.InstallModeTypeMultiNamespace),
-		string(operatorv1alpha1.InstallModeTypeAllNamespaces),
+	prioritizedInstallModes = []operatorsv1alpha1.InstallModeType{
+		operatorsv1alpha1.InstallModeTypeOwnNamespace,
+		operatorsv1alpha1.InstallModeTypeSingleNamespace,
+		operatorsv1alpha1.InstallModeTypeMultiNamespace,
+		operatorsv1alpha1.InstallModeTypeAllNamespaces,
 	}
 )
diff --git a/certification/internal/policy/operator/deployable_by_olm.go b/certification/internal/policy/operator/deployable_by_olm.go
index e917dd7..4648275 100644
--- a/certification/internal/policy/operator/deployable_by_olm.go
+++ b/certification/internal/policy/operator/deployable_by_olm.go
@@ -11,21 +11,21 @@ import (
 	"sync"
 	"time"
 
-	operatorv1 "github.com/operator-framework/api/pkg/operators/v1"
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
-	corev1 "k8s.io/api/core/v1"
-	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
-	apiruntime "k8s.io/apimachinery/pkg/runtime"
-	"k8s.io/apimachinery/pkg/runtime/schema"
-	ctrl "sigs.k8s.io/controller-runtime"
-	crclient "sigs.k8s.io/controller-runtime/pkg/client"
-
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/bundle"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/openshift"
 
+	"github.com/operator-framework/api/pkg/manifests"
+	operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
 	log "github.com/sirupsen/logrus"
+	corev1 "k8s.io/api/core/v1"
+	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
+	apiruntime "k8s.io/apimachinery/pkg/runtime"
+	"k8s.io/apimachinery/pkg/runtime/schema"
+	ctrl "sigs.k8s.io/controller-runtime"
+	crclient "sigs.k8s.io/controller-runtime/pkg/client"
 )
 
 var _ certification.Check = &DeployableByOlmCheck{}
@@ -37,7 +37,7 @@ type operatorData struct {
 	App              string
 	InstallNamespace string
 	TargetNamespace  string
-	InstallModes     map[string]bool
+	InstallModes     map[operatorsv1alpha1.InstallModeType]operatorsv1alpha1.InstallMode
 	CsvNamespaces    []string
 	InstalledCsv     string
 }
@@ -81,11 +81,10 @@ func (p *DeployableByOlmCheck) initClient() error {
 	return nil
 }
 
-func (p *DeployableByOlmCheck) initOpenShifeEngine() error {
+func (p *DeployableByOlmCheck) initOpenShifeEngine() {
 	if p.openshiftClient == nil {
 		p.openshiftClient = openshift.NewClient(p.client)
 	}
-	return nil
 }
 
 // NewDeployableByOlmCheck will return a check that validates if an operator
@@ -107,7 +106,9 @@ func NewDeployableByOlmCheck(
 }
 
 func (p *DeployableByOlmCheck) Validate(ctx context.Context, bundleRef certification.ImageReference) (bool, error) {
-	p.initClient()
+	if err := p.initClient(); err != nil {
+		return false, fmt.Errorf("%v", err)
+	}
 	p.initOpenShifeEngine()
 	if report, err := bundle.Validate(ctx, p.OperatorSdk, bundleRef.ImageFSPath); err != nil || !report.Passed {
 		return false, fmt.Errorf("%v", err)
@@ -198,7 +199,7 @@ func (p *DeployableByOlmCheck) operatorMetadata(ctx context.Context, bundleRef c
 	if err != nil {
 		return nil, fmt.Errorf("could not open annotations.yaml: %w", err)
 	}
-	annotations, err := bundle.GetAnnotations(ctx, annotationsFile)
+	annotations, err := bundle.LoadAnnotations(ctx, annotationsFile)
 	if err != nil {
 		return nil, fmt.Errorf("unable to get annotations.yaml from the bundle: %w", err)
 	}
@@ -206,10 +207,7 @@ func (p *DeployableByOlmCheck) operatorMetadata(ctx context.Context, bundleRef c
 	catalogImage := p.indexImage
 
 	// introspect the channel from the bundle.
-	channel, err := annotation(annotations, channelKeyInBundle)
-	if err != nil {
-		return nil, fmt.Errorf("unable to extract channel name from the bundle: %w", err)
-	}
+	channel := annotations.DefaultChannelName
 
 	// The user provided a channel configuration so we will
 	// use that instead of the introspected value.
@@ -217,24 +215,16 @@ func (p *DeployableByOlmCheck) operatorMetadata(ctx context.Context, bundleRef c
 		channel = p.channel
 	}
 
-	packageName, err := annotation(annotations, packageKey)
-	if err != nil {
-		return nil, fmt.Errorf("unable to extract package name from the bundle: %w", err)
-	}
-
-	csvFilepath, err := bundle.GetCsvFilePathFromBundle(bundleRef.ImageFSPath)
-	if err != nil {
-		return nil, err
-	}
+	packageName := annotations.PackageName
 
-	csvFileReader, err := os.Open(csvFilepath)
+	bundle, err := manifests.GetBundleFromDir(bundleRef.ImageFSPath)
 	if err != nil {
 		return nil, err
 	}
 
-	installModes, err := bundle.GetSupportedInstallModes(ctx, csvFileReader)
-	if err != nil {
-		return nil, fmt.Errorf("unable to extract operator install modes from ClusterServiceVersion: %w", err)
+	installModes := make(map[operatorsv1alpha1.InstallModeType]operatorsv1alpha1.InstallMode)
+	for _, val := range bundle.CSV.Spec.InstallModes {
+		installModes[val.Type] = val
 	}
 
 	return &operatorData{
@@ -308,7 +298,6 @@ func (p *DeployableByOlmCheck) setUp(ctx context.Context, operatorData *operator
 			); err != nil {
 				return err
 			}
-
 		}
 	}
 
@@ -352,26 +341,24 @@ func (p *DeployableByOlmCheck) setUp(ctx context.Context, operatorData *operator
 }
 
 func (p *DeployableByOlmCheck) generateOperatorGroupData(operatorData *operatorData) openshift.OperatorGroupData {
-	var installMode string
-	for i := 0; i < len(prioritizedInstallModes); i++ {
-		if _, ok := operatorData.InstallModes[prioritizedInstallModes[i]]; ok {
-			installMode = prioritizedInstallModes[i]
-			break
+	var installMode operatorsv1alpha1.InstallModeType
+	for _, v := range prioritizedInstallModes {
+		if operatorData.InstallModes[v].Supported {
+			installMode = operatorData.InstallModes[v].Type
 		}
 	}
 	log.Debugf("The operator install mode is %s", installMode)
 	targetNamespaces := make([]string, 2)
 
 	switch installMode {
-	case string(operatorv1alpha1.InstallModeTypeOwnNamespace):
+	case operatorsv1alpha1.InstallModeTypeOwnNamespace:
 		targetNamespaces = []string{operatorData.InstallNamespace}
-	case string(operatorv1alpha1.InstallModeTypeSingleNamespace):
+	case operatorsv1alpha1.InstallModeTypeSingleNamespace:
 		targetNamespaces = []string{operatorData.TargetNamespace}
-	case string(operatorv1alpha1.InstallModeTypeMultiNamespace):
+	case operatorsv1alpha1.InstallModeTypeMultiNamespace:
 		targetNamespaces = []string{operatorData.TargetNamespace, operatorData.InstallNamespace}
-	case string(operatorv1alpha1.InstallModeTypeAllNamespaces):
+	case operatorsv1alpha1.InstallModeTypeAllNamespaces:
 		targetNamespaces = []string{}
-
 	}
 	log.Debugf("The OperatorGroup's TargetNamespaces is %s", targetNamespaces)
 	operatorData.CsvNamespaces = targetNamespaces
@@ -438,7 +425,7 @@ func csvStatusSucceeded(ctx context.Context, client openshift.Client, name, name
 		return "", false, fmt.Errorf("failed to fetch the csv %s from namespace %s: %w", name, namespace, err)
 	}
 	// if the CSV phase is succeeded, stop the querying
-	if csv != nil && csv.Status.Phase == operatorv1alpha1.CSVPhaseSucceeded {
+	if csv != nil && csv.Status.Phase == operatorsv1alpha1.CSVPhaseSucceeded {
 		log.Debugf("CSV %s is created successfully in namespace %s", name, namespace)
 		return name, true, nil
 	}
@@ -524,59 +511,70 @@ func (p *DeployableByOlmCheck) cleanUp(ctx context.Context, operatorData operato
 	if err != nil {
 		log.Warn("unable to retrieve the subscription")
 	} else {
-		p.writeToFile(subs)
+		err := p.writeToFile(subs)
+		if err != nil {
+			log.Errorf("could not write subscription to storage")
+		}
 	}
 
 	cs, err := p.openshiftClient.GetCatalogSource(ctx, operatorData.App, operatorData.InstallNamespace)
 	if err != nil {
 		log.Warn("unable to retrieve the catalogsource")
 	} else {
-		p.writeToFile(cs)
+		if err := p.writeToFile(cs); err != nil {
+			log.Errorf("could not write catalogsource to storage")
+		}
 	}
 
 	og, err := p.openshiftClient.GetOperatorGroup(ctx, operatorData.App, operatorData.InstallNamespace)
 	if err != nil {
 		log.Warn("unable to retrieve the operatorgroup")
 	} else {
-		p.writeToFile(og)
+		if err := p.writeToFile(og); err != nil {
+			log.Errorf("could not write operatorgroup to storage")
+		}
 	}
 
 	installNamespace, err := p.openshiftClient.GetNamespace(ctx, operatorData.InstallNamespace)
 	if err != nil {
 		log.Warn("unable to retrieve the install namespace")
 	} else {
-		p.writeToFile(installNamespace)
+		if err := p.writeToFile(installNamespace); err != nil {
+			log.Errorf("could not write install namespace to storage")
+		}
 	}
 
 	targetNamespace, err := p.openshiftClient.GetNamespace(ctx, operatorData.TargetNamespace)
 	if err != nil {
 		log.Warn("unable to retrieve the target namespace")
 	} else {
-		p.writeToFile(targetNamespace)
+		if err := p.writeToFile(targetNamespace); err != nil {
+			log.Errorf("could not write target namespace to storage")
+		}
 	}
 
 	log.Trace("Deleting the resources created by DeployableByOLM Check")
-	p.openshiftClient.DeleteSubscription(ctx, operatorData.App, operatorData.InstallNamespace)
-	p.openshiftClient.DeleteCatalogSource(ctx, operatorData.App, operatorData.InstallNamespace)
-	p.openshiftClient.DeleteOperatorGroup(ctx, operatorData.App, operatorData.InstallNamespace)
-	p.openshiftClient.DeleteSecret(ctx, secretName, operatorData.InstallNamespace)
+	_ = p.openshiftClient.DeleteSubscription(ctx, operatorData.App, operatorData.InstallNamespace)
+	_ = p.openshiftClient.DeleteCatalogSource(ctx, operatorData.App, operatorData.InstallNamespace)
+	_ = p.openshiftClient.DeleteOperatorGroup(ctx, operatorData.App, operatorData.InstallNamespace)
+	_ = p.openshiftClient.DeleteSecret(ctx, secretName, operatorData.InstallNamespace)
 
 	if strings.Contains(operatorData.CatalogImage, imageRegistryService) {
 		indexImageNamespace := strings.Split(operatorData.CatalogImage, "/")[1]
 		operatorServiceAccount := operatorData.App
 		operatorNamespace := operatorData.InstallNamespace
 		// remove pipeline-related rolebindings
-		p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", pipelineServiceAccount, operatorNamespace, registryViewerRole), indexImageNamespace)
-		p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", pipelineServiceAccount, operatorNamespace, imagePullerRole), indexImageNamespace)
+		_ = p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", pipelineServiceAccount, operatorNamespace, registryViewerRole), indexImageNamespace)
+		_ = p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", pipelineServiceAccount, operatorNamespace, imagePullerRole), indexImageNamespace)
 		// remove rolebindings required for the default OperatorHub catalog sources
-		p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, openshiftMarketplaceNamespace, registryViewerRole), indexImageNamespace)
-		p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, openshiftMarketplaceNamespace, imagePullerRole), indexImageNamespace)
+		_ = p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, openshiftMarketplaceNamespace, registryViewerRole), indexImageNamespace)
+		_ = p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, openshiftMarketplaceNamespace, imagePullerRole), indexImageNamespace)
 		// remove rolebindings required for custom catalog sources
-		p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, operatorNamespace, registryViewerRole), indexImageNamespace)
-		p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, operatorNamespace, imagePullerRole), indexImageNamespace)
+		_ = p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, operatorNamespace, registryViewerRole), indexImageNamespace)
+		_ = p.openshiftClient.DeleteRoleBinding(ctx, fmt.Sprintf("%s:%s:%s", operatorServiceAccount, operatorNamespace, imagePullerRole), indexImageNamespace)
 	}
-	p.openshiftClient.DeleteNamespace(ctx, operatorData.InstallNamespace)
-	p.openshiftClient.DeleteNamespace(ctx, operatorData.TargetNamespace)
+	_ = p.openshiftClient.DeleteNamespace(ctx, operatorData.InstallNamespace)
+	_ = p.openshiftClient.DeleteNamespace(ctx, operatorData.TargetNamespace)
 }
 
 func (p *DeployableByOlmCheck) writeToFile(data interface{}) error {
@@ -589,13 +587,13 @@ func (p *DeployableByOlmCheck) writeToFile(data interface{}) error {
 	var version, kind string
 	u := &unstructured.Unstructured{Object: obj}
 	switch data.(type) {
-	case *operatorv1alpha1.CatalogSource:
+	case *operatorsv1alpha1.CatalogSource:
 		version = "v1alpha1"
 		kind = "CatalogSource"
-	case *operatorv1.OperatorGroup:
+	case *operatorsv1.OperatorGroup:
 		version = "v1"
 		kind = "OperatorGroup"
-	case *operatorv1alpha1.Subscription:
+	case *operatorsv1alpha1.Subscription:
 		version = "v1alpha1"
 		kind = "Subscription"
 	case *corev1.Namespace:
diff --git a/certification/internal/policy/operator/operator.go b/certification/internal/policy/operator/operator.go
deleted file mode 100644
index 7999bda..0000000
--- a/certification/internal/policy/operator/operator.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package operator
-
-import (
-	"fmt"
-
-	log "github.com/sirupsen/logrus"
-)
-
-// annotation() accepts the annotations map and searches for the specified annotation corresponding
-// with the key, which is then returned.
-func annotation(annotations map[string]string, key string) (string, error) {
-	log.Tracef("searching for key (%s) in bundle", key)
-	log.Trace("bundle data: ", annotations)
-	value, found := annotations[key]
-	if !found {
-		return "", fmt.Errorf("did not find value at the key %s in the annotations.yaml", key)
-	}
-
-	return value, nil
-}
diff --git a/certification/internal/policy/operator/related_images.go b/certification/internal/policy/operator/related_images.go
index 3fe80b4..2f78e9c 100644
--- a/certification/internal/policy/operator/related_images.go
+++ b/certification/internal/policy/operator/related_images.go
@@ -5,12 +5,12 @@ import (
 	"fmt"
 	"path/filepath"
 
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
-	log "github.com/sirupsen/logrus"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 
+	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
 	"github.com/operator-framework/operator-manifest-tools/pkg/image"
 	"github.com/operator-framework/operator-manifest-tools/pkg/pullspec"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+	log "github.com/sirupsen/logrus"
 	"sigs.k8s.io/yaml"
 )
 
@@ -27,6 +27,7 @@ func (p *RelatedImagesCheck) Validate(ctx context.Context, imgRef certification.
 	return p.validate(ctx, images, manifests)
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *RelatedImagesCheck) dataToValidate(ctx context.Context, imagePath string) ([]string, map[string]struct{}, error) {
 	operatorManifests, err := pullspec.FromDirectory(filepath.Join(imagePath, "manifests"), pullspec.DefaultHeuristic)
 	if err != nil {
@@ -45,7 +46,7 @@ func (p *RelatedImagesCheck) dataToValidate(ctx context.Context, imagePath strin
 			if err != nil {
 				return nil, nil, fmt.Errorf("could not get manifest yaml: %v", err)
 			}
-			var csv operatorv1alpha1.ClusterServiceVersion
+			var csv operatorsv1alpha1.ClusterServiceVersion
 			err = yaml.Unmarshal(csvBytes, &csv)
 			if err != nil {
 				return nil, nil, fmt.Errorf("malformed CSV detected: %v", err)
@@ -61,6 +62,7 @@ func (p *RelatedImagesCheck) dataToValidate(ctx context.Context, imagePath strin
 	return imageNames, relatedImages, nil
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *RelatedImagesCheck) validate(ctx context.Context, images []string, relatedImages map[string]struct{}) (bool, error) {
 	for _, image := range images {
 		if _, ok := relatedImages[image]; !ok {
@@ -85,7 +87,7 @@ func (p *RelatedImagesCheck) Metadata() certification.Metadata {
 
 func (p *RelatedImagesCheck) Help() certification.HelpText {
 	return certification.HelpText{
-		Message:    "Check that all images refereneced in the CSV are in RelatedImages",
+		Message:    "Check that all images referenced in the CSV are in RelatedImages",
 		Suggestion: "Either manually or with a tool, populate the RelatedImages section of the CSV",
 	}
 }
diff --git a/certification/internal/policy/operator/scc_info.go b/certification/internal/policy/operator/scc_info.go
index e981364..20b69f5 100644
--- a/certification/internal/policy/operator/scc_info.go
+++ b/certification/internal/policy/operator/scc_info.go
@@ -3,12 +3,11 @@ package operator
 import (
 	"context"
 	"fmt"
-	"os"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/bundle"
-	log "github.com/sirupsen/logrus"
 
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+	log "github.com/sirupsen/logrus"
 )
 
 var _ certification.Check = &securityContextConstraintsInCSV{}
@@ -35,17 +34,7 @@ func (p *securityContextConstraintsInCSV) Validate(ctx context.Context, bundleRe
 }
 
 func (p *securityContextConstraintsInCSV) dataToValidate(ctx context.Context, imagePath string) ([]string, error) {
-	csvFilepath, err := bundle.GetCsvFilePathFromBundle(imagePath)
-	if err != nil {
-		return nil, err
-	}
-
-	csvFileReader, err := os.Open(csvFilepath)
-	if err != nil {
-		return nil, err
-	}
-
-	requestedSccList, err := bundle.GetSecurityContextConstraints(ctx, csvFileReader)
+	requestedSccList, err := bundle.GetSecurityContextConstraints(ctx, imagePath)
 	if err != nil {
 		return nil, fmt.Errorf("unable to extract security context constraints from ClusterServiceVersion: %w", err)
 	}
@@ -53,6 +42,7 @@ func (p *securityContextConstraintsInCSV) dataToValidate(ctx context.Context, im
 	return requestedSccList, nil
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *securityContextConstraintsInCSV) validate(ctx context.Context, requestedSccList []string) (bool, error) {
 	if len(requestedSccList) == 0 {
 		log.Infof("No custom security context constraint was detected in the CSV. The default restricted SCC will be used.")
diff --git a/certification/internal/policy/operator/scorecard_basic_check_spec.go b/certification/internal/policy/operator/scorecard_basic_check_spec.go
index 4b0896d..54bcf36 100644
--- a/certification/internal/policy/operator/scorecard_basic_check_spec.go
+++ b/certification/internal/policy/operator/scorecard_basic_check_spec.go
@@ -6,6 +6,7 @@ import (
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
+
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/internal/policy/operator/scorecard_check.go b/certification/internal/policy/operator/scorecard_check.go
index 55245e3..7d4301b 100644
--- a/certification/internal/policy/operator/scorecard_check.go
+++ b/certification/internal/policy/operator/scorecard_check.go
@@ -6,6 +6,7 @@ import (
 	"strings"
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+
 	log "github.com/sirupsen/logrus"
 )
 
@@ -18,6 +19,7 @@ type scorecardCheck struct {
 	waitTime       string
 }
 
+//nolint:unparam // ctx is unused. Keep for future use.
 func (p *scorecardCheck) validate(ctx context.Context, items []operatorsdk.OperatorSdkScorecardItem) (bool, error) {
 	foundTestFailed := false
 	var err error
diff --git a/certification/internal/policy/operator/scorecard_olm_suite.go b/certification/internal/policy/operator/scorecard_olm_suite.go
index c02c814..62c2280 100644
--- a/certification/internal/policy/operator/scorecard_olm_suite.go
+++ b/certification/internal/policy/operator/scorecard_olm_suite.go
@@ -6,6 +6,7 @@ import (
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
+
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/internal/policy/operator/validate_operator_bundle.go b/certification/internal/policy/operator/validate_operator_bundle.go
index d34649d..7fa90b1 100644
--- a/certification/internal/policy/operator/validate_operator_bundle.go
+++ b/certification/internal/policy/operator/validate_operator_bundle.go
@@ -7,6 +7,7 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/bundle"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+
 	log "github.com/sirupsen/logrus"
 )
 
@@ -24,9 +25,7 @@ func NewValidateOperatorBundleCheck(operatorSdk operatorSdk) *ValidateOperatorBu
 	}
 }
 
-const ocpVerV1beta1Unsupported = "4.9"
-
-func (p ValidateOperatorBundleCheck) Validate(ctx context.Context, bundleRef certification.ImageReference) (bool, error) {
+func (p *ValidateOperatorBundleCheck) Validate(ctx context.Context, bundleRef certification.ImageReference) (bool, error) {
 	report, err := p.getDataToValidate(ctx, bundleRef.ImageFSPath)
 	if err != nil {
 		return false, fmt.Errorf("error while executing operator-sdk bundle validate: %v", err)
@@ -35,11 +34,12 @@ func (p ValidateOperatorBundleCheck) Validate(ctx context.Context, bundleRef cer
 	return p.validate(ctx, report)
 }
 
-func (p ValidateOperatorBundleCheck) getDataToValidate(ctx context.Context, imagePath string) (*operatorsdk.OperatorSdkBundleValidateReport, error) {
+func (p *ValidateOperatorBundleCheck) getDataToValidate(ctx context.Context, imagePath string) (*operatorsdk.OperatorSdkBundleValidateReport, error) {
 	return bundle.Validate(ctx, p.OperatorSdk, imagePath)
 }
 
-func (p ValidateOperatorBundleCheck) validate(ctx context.Context, report *operatorsdk.OperatorSdkBundleValidateReport) (bool, error) {
+//nolint:unparam // ctx is unused. Keep for future use.
+func (p *ValidateOperatorBundleCheck) validate(ctx context.Context, report *operatorsdk.OperatorSdkBundleValidateReport) (bool, error) {
 	if !report.Passed || len(report.Outputs) > 0 {
 		for _, output := range report.Outputs {
 			var logFn func(...interface{})
@@ -57,11 +57,11 @@ func (p ValidateOperatorBundleCheck) validate(ctx context.Context, report *opera
 	return report.Passed, nil
 }
 
-func (p ValidateOperatorBundleCheck) Name() string {
+func (p *ValidateOperatorBundleCheck) Name() string {
 	return "ValidateOperatorBundle"
 }
 
-func (p ValidateOperatorBundleCheck) Metadata() certification.Metadata {
+func (p *ValidateOperatorBundleCheck) Metadata() certification.Metadata {
 	return certification.Metadata{
 		Description:      "Validating Bundle image that checks if it can validate the content and format of the operator bundle",
 		Level:            "best",
@@ -70,7 +70,7 @@ func (p ValidateOperatorBundleCheck) Metadata() certification.Metadata {
 	}
 }
 
-func (p ValidateOperatorBundleCheck) Help() certification.HelpText {
+func (p *ValidateOperatorBundleCheck) Help() certification.HelpText {
 	return certification.HelpText{
 		Message:    "Check ValidateOperatorBundle encountered an error. Please review the preflight.log file for more information.",
 		Suggestion: "Valid bundles are defined by bundle spec, so make sure that this bundle conforms to that spec. More Information: https://github.com/operator-framework/operator-registry/blob/master/docs/design/operator-bundle.md",
diff --git a/certification/pyxis/layers.go b/certification/pyxis/layers.go
index 75b3660..16e48c8 100644
--- a/certification/pyxis/layers.go
+++ b/certification/pyxis/layers.go
@@ -23,7 +23,7 @@ func (p *pyxisClient) CertifiedImagesContainingLayers(ctx context.Context, uncom
 	var query struct {
 		FindImages struct {
 			ContainerImage []struct {
-				UncompressedTopLayerId graphql.String `graphql:"uncompressed_top_layer_id"`
+				UncompressedTopLayerID graphql.String `graphql:"uncompressed_top_layer_id"`
 				ID                     graphql.String `graphql:"_id"`
 				FreshnessGrades        []struct {
 					Grade     graphql.String `graphql:"grade"`
@@ -52,7 +52,7 @@ func (p *pyxisClient) CertifiedImagesContainingLayers(ctx context.Context, uncom
 	if !ok {
 		return nil, fmt.Errorf("client could not be used as http.Client")
 	}
-	client := graphql.NewClient(p.getPyxisGraphqlUrl(), httpClient)
+	client := graphql.NewClient(p.getPyxisGraphqlURL(), httpClient)
 
 	err := client.Query(ctx, &query, variables)
 	if err != nil {
@@ -73,7 +73,7 @@ func (p *pyxisClient) CertifiedImagesContainingLayers(ctx context.Context, uncom
 		}
 		images = append(images, CertImage{
 			ID:                     string(image.ID),
-			UncompressedTopLayerId: string(image.UncompressedTopLayerId),
+			UncompressedTopLayerID: string(image.UncompressedTopLayerID),
 			FreshnessGrades:        freshnessGrades,
 		})
 	}
diff --git a/certification/pyxis/pyxis.go b/certification/pyxis/pyxis.go
index 675c31b..ed83490 100644
--- a/certification/pyxis/pyxis.go
+++ b/certification/pyxis/pyxis.go
@@ -21,24 +21,24 @@ type HTTPClient interface {
 }
 
 type pyxisClient struct {
-	ApiToken  string
-	ProjectId string
+	APIToken  string
+	ProjectID string
 	Client    HTTPClient
 	PyxisHost string
 }
 
-func (p *pyxisClient) getPyxisUrl(path string) string {
+func (p *pyxisClient) getPyxisURL(path string) string {
 	return fmt.Sprintf("https://%s/%s/%s", p.PyxisHost, apiVersion, path)
 }
 
-func (p *pyxisClient) getPyxisGraphqlUrl() string {
+func (p *pyxisClient) getPyxisGraphqlURL() string {
 	return fmt.Sprintf("https://%s/graphql/", p.PyxisHost)
 }
 
-func NewPyxisClient(pyxisHost string, apiToken string, projectId string, httpClient HTTPClient) *pyxisClient {
+func NewPyxisClient(pyxisHost string, apiToken string, projectID string, httpClient HTTPClient) *pyxisClient {
 	return &pyxisClient{
-		ApiToken:  apiToken,
-		ProjectId: projectId,
+		APIToken:  apiToken,
+		ProjectID: projectID,
 		Client:    httpClient,
 		PyxisHost: pyxisHost,
 	}
@@ -49,7 +49,7 @@ func (p *pyxisClient) createImage(ctx context.Context, certImage *CertImage) (*C
 	if err != nil {
 		return nil, fmt.Errorf("could not marshal certImage: %w", err)
 	}
-	req, err := p.newRequestWithApiToken(ctx, http.MethodPost, p.getPyxisUrl("images"), bytes.NewReader(b))
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodPost, p.getPyxisURL("images"), bytes.NewReader(b))
 	if err != nil {
 		return nil, err
 	}
@@ -88,8 +88,8 @@ func (p *pyxisClient) createImage(ctx context.Context, certImage *CertImage) (*C
 }
 
 func (p *pyxisClient) getImage(ctx context.Context, dockerImageDigest string) (*CertImage, error) {
-	req, err := p.newRequestWithApiToken(ctx, http.MethodGet,
-		p.getPyxisUrl(fmt.Sprintf("projects/certification/id/%s/images?filter=docker_image_digest==%s", p.ProjectId, dockerImageDigest)), nil)
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodGet,
+		p.getPyxisURL(fmt.Sprintf("projects/certification/id/%s/images?filter=docker_image_digest==%s", p.ProjectID, dockerImageDigest)), nil)
 	if err != nil {
 		return nil, fmt.Errorf("could not create new request: %w", err)
 	}
@@ -167,7 +167,7 @@ func (p *pyxisClient) FindImagesByDigest(ctx context.Context, digests []string)
 	if !ok {
 		return nil, fmt.Errorf("client could not be used as http.Client")
 	}
-	client := graphql.NewClient(p.getPyxisGraphqlUrl(), httpClient)
+	client := graphql.NewClient(p.getPyxisGraphqlURL(), httpClient)
 
 	err := client.Query(ctx, &query, variables)
 	if err != nil {
@@ -191,7 +191,7 @@ func (p *pyxisClient) createRPMManifest(ctx context.Context, rpmManifest *RPMMan
 	if err != nil {
 		return nil, fmt.Errorf("could not marshal rpm manifest: %w", err)
 	}
-	req, err := p.newRequestWithApiToken(ctx, http.MethodPost, p.getPyxisUrl(fmt.Sprintf("images/id/%s/rpm-manifest", rpmManifest.ImageID)), bytes.NewReader(b))
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodPost, p.getPyxisURL(fmt.Sprintf("images/id/%s/rpm-manifest", rpmManifest.ImageID)), bytes.NewReader(b))
 	if err != nil {
 		return nil, fmt.Errorf("could not create new request: %w", err)
 	}
@@ -230,7 +230,7 @@ func (p *pyxisClient) createRPMManifest(ctx context.Context, rpmManifest *RPMMan
 }
 
 func (p *pyxisClient) getRPMManifest(ctx context.Context, imageID string) (*RPMManifest, error) {
-	req, err := p.newRequestWithApiToken(ctx, http.MethodGet, p.getPyxisUrl(fmt.Sprintf("images/id/%s/rpm-manifest", imageID)), nil)
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodGet, p.getPyxisURL(fmt.Sprintf("images/id/%s/rpm-manifest", imageID)), nil)
 	if err != nil {
 		return nil, fmt.Errorf("could not create new request: %w", err)
 	}
@@ -265,7 +265,7 @@ func (p *pyxisClient) getRPMManifest(ctx context.Context, imageID string) (*RPMM
 }
 
 func (p *pyxisClient) GetProject(ctx context.Context) (*CertProject, error) {
-	req, err := p.newRequestWithApiToken(ctx, http.MethodGet, p.getPyxisUrl(fmt.Sprintf("projects/certification/id/%s", p.ProjectId)), nil)
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodGet, p.getPyxisURL(fmt.Sprintf("projects/certification/id/%s", p.ProjectID)), nil)
 	if err != nil {
 		return nil, fmt.Errorf("could not create new request: %v", err)
 	}
@@ -299,9 +299,9 @@ func (p *pyxisClient) GetProject(ctx context.Context) (*CertProject, error) {
 }
 
 func (p *pyxisClient) updateProject(ctx context.Context, certProject *CertProject) (*CertProject, error) {
-	// We cannot send the project type to pyxis in a Patch.
-	// Copy the CertProject and strip the Type value to
-	// have omitempty skip the key in the JSON patch.
+	// We cannot send the project type or container type
+	// to pyxis in a Patch. Copy the CertProject and strip type
+	// values to have omitempty skip the key in the JSON patch.
 	patchCertProject := &CertProject{
 		ID:                  certProject.ID,
 		CertificationStatus: certProject.CertificationStatus,
@@ -310,12 +310,13 @@ func (p *pyxisClient) updateProject(ctx context.Context, certProject *CertProjec
 		ProjectStatus:       certProject.ProjectStatus,
 		// Do not copy the Type.
 	}
+	patchCertProject.Container.Type = "" // Truncate this value, too.
 
 	b, err := json.Marshal(patchCertProject)
 	if err != nil {
 		return nil, fmt.Errorf("could not marshal certProject: %w", err)
 	}
-	req, err := p.newRequestWithApiToken(ctx, http.MethodPatch, p.getPyxisUrl(fmt.Sprintf("projects/certification/id/%s", p.ProjectId)), bytes.NewReader(b))
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodPatch, p.getPyxisURL(fmt.Sprintf("projects/certification/id/%s", p.ProjectID)), bytes.NewReader(b))
 	if err != nil {
 		return nil, fmt.Errorf("could not create new request: %w", err)
 	}
@@ -354,7 +355,7 @@ func (p *pyxisClient) createTestResults(ctx context.Context, testResults *TestRe
 	if err != nil {
 		return nil, fmt.Errorf("could not marshal test results: %w", err)
 	}
-	req, err := p.newRequestWithApiToken(ctx, http.MethodPost, p.getPyxisUrl(fmt.Sprintf("projects/certification/id/%s/test-results", p.ProjectId)), bytes.NewReader(b))
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodPost, p.getPyxisURL(fmt.Sprintf("projects/certification/id/%s/test-results", p.ProjectID)), bytes.NewReader(b))
 	if err != nil {
 		return nil, fmt.Errorf("could not create new request: %w", err)
 	}
@@ -391,7 +392,7 @@ func (p *pyxisClient) createArtifact(ctx context.Context, artifact *Artifact) (*
 	if err != nil {
 		return nil, fmt.Errorf("could not marshal artifact: %w", err)
 	}
-	req, err := p.newRequestWithApiToken(ctx, http.MethodPost, p.getPyxisUrl(fmt.Sprintf("projects/certification/id/%s/artifacts", p.ProjectId)), bytes.NewReader(b))
+	req, err := p.newRequestWithAPIToken(ctx, http.MethodPost, p.getPyxisURL(fmt.Sprintf("projects/certification/id/%s/artifacts", p.ProjectID)), bytes.NewReader(b))
 	if err != nil {
 		return nil, fmt.Errorf("could not create new request: %w", err)
 	}
@@ -425,13 +426,13 @@ func (p *pyxisClient) createArtifact(ctx context.Context, artifact *Artifact) (*
 	return &newArtifact, nil
 }
 
-func (p *pyxisClient) newRequestWithApiToken(ctx context.Context, method string, url string, body io.Reader) (*http.Request, error) {
+func (p *pyxisClient) newRequestWithAPIToken(ctx context.Context, method string, url string, body io.Reader) (*http.Request, error) {
 	req, err := p.newRequest(ctx, method, url, body)
 	if err != nil {
 		return nil, err
 	}
 
-	req.Header.Add("X-API-KEY", p.ApiToken)
+	req.Header.Add("X-API-KEY", p.APIToken)
 
 	return req, nil
 }
diff --git a/certification/pyxis/types.go b/certification/pyxis/types.go
index 469786b..d94ed6c 100644
--- a/certification/pyxis/types.go
+++ b/certification/pyxis/types.go
@@ -33,7 +33,7 @@ type CertImage struct {
 	RawConfig              string           `json:"raw_config,omitempty"`
 	Repositories           []Repository     `json:"repositories,omitempty"`
 	SumLayerSizeBytes      int64            `json:"sum_layer_size_bytes,omitempty"`
-	UncompressedTopLayerId string           `json:"uncompressed_top_layer_id,omitempty"` // TODO: figure out how to populate this, it is not required
+	UncompressedTopLayerID string           `json:"uncompressed_top_layer_id,omitempty"`
 	FreshnessGrades        []FreshnessGrade `json:"freshness_grades,omitempty"`
 }
 
@@ -106,8 +106,8 @@ type CertProject struct {
 
 type Container struct {
 	DockerConfigJSON string `json:"docker_config_json,omitempty"`
-	Type             string `json:"type" default:"Containers"` // conditionally required
-	ISVPID           string `json:"isv_pid,omitempty"`         // required
+	Type             string `json:"type,omitempty"`    // conditionally required
+	ISVPID           string `json:"isv_pid,omitempty"` // required
 	Registry         string `json:"registry,omitempty"`
 	Repository       string `json:"repository,omitempty"`
 	OsContentType    string `json:"os_content_type,omitempty"`
@@ -115,7 +115,7 @@ type Container struct {
 }
 
 type Layer struct {
-	LayerId string `json:"layer_id"`
+	LayerID string `json:"layer_id"`
 	Size    int64  `json:"size_bytes"`
 }
 
diff --git a/certification/runtime/assets.go b/certification/runtime/assets.go
index 29e3e0d..98f80c1 100644
--- a/certification/runtime/assets.go
+++ b/certification/runtime/assets.go
@@ -5,8 +5,9 @@ import (
 	"fmt"
 	"strings"
 
-	"github.com/google/go-containerregistry/pkg/crane"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/authn"
+
+	"github.com/google/go-containerregistry/pkg/crane"
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/runtime/config.go b/certification/runtime/config.go
index 8338483..9dc7f18 100644
--- a/certification/runtime/config.go
+++ b/certification/runtime/config.go
@@ -2,9 +2,9 @@ package runtime
 
 import (
 	"os"
-	"strings"
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/policy"
+
 	"github.com/spf13/viper"
 )
 
@@ -62,13 +62,7 @@ func (c *Config) storeContainerPolicyConfiguration(vcfg viper.Viper) {
 	c.PyxisAPIToken = vcfg.GetString("pyxis_api_token")
 	c.Submit = vcfg.GetBool("submit")
 	c.PyxisHost = pyxisHostLookup(vcfg.GetString("pyxis_env"), vcfg.GetString("pyxis_host"))
-
-	// Strip the ospid- prefix from the project ID if provided.
-	certificationProjectID := vcfg.GetString("certification_project_id")
-	if strings.HasPrefix(certificationProjectID, "ospid-") {
-		certificationProjectID = strings.Split(certificationProjectID, "-")[1]
-	}
-	c.CertificationProjectID = certificationProjectID
+	c.CertificationProjectID = vcfg.GetString("certification_project_id")
 }
 
 // storeOperatorPolicyConfiguration reads operator-policy-specific config
diff --git a/cmd/check.go b/cmd/check.go
index ff6f12f..ed63675 100644
--- a/cmd/check.go
+++ b/cmd/check.go
@@ -8,6 +8,7 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/formatters"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	log "github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
 	"github.com/spf13/viper"
@@ -23,10 +24,10 @@ func checkCmd() *cobra.Command {
 	checkCmd.PersistentFlags().StringP("docker-config", "d", "", "Path to docker config.json file. This value is optional for publicly accessible images.\n"+
 		"However, it is strongly encouraged for public Docker Hub images,\n"+
 		"due to the rate limit imposed for unauthenticated requests. (env: PFLT_DOCKERCONFIG)")
-	viper.BindPFlag("dockerConfig", checkCmd.PersistentFlags().Lookup("docker-config"))
+	_ = viper.BindPFlag("dockerConfig", checkCmd.PersistentFlags().Lookup("docker-config"))
 
 	checkCmd.PersistentFlags().String("artifacts", "", "Where check-specific artifacts will be written. (env: PFLT_ARTIFACTS)")
-	viper.BindPFlag("artifacts", checkCmd.PersistentFlags().Lookup("artifacts"))
+	_ = viper.BindPFlag("artifacts", checkCmd.PersistentFlags().Lookup("artifacts"))
 
 	checkCmd.AddCommand(checkContainerCmd())
 	checkCmd.AddCommand(checkOperatorCmd())
@@ -64,8 +65,8 @@ func resultsFilenameWithExtension(ext string) string {
 func buildConnectURL(projectID string) string {
 	connectURL := fmt.Sprintf("https://connect.redhat.com/projects/%s", projectID)
 
-	pyxis_env := viper.GetString("pyxis_env")
-	if len(pyxis_env) > 0 && pyxis_env != "prod" {
+	pyxisEnv := viper.GetString("pyxis_env")
+	if len(pyxisEnv) > 0 && pyxisEnv != "prod" {
 		connectURL = fmt.Sprintf("https://connect.%s.redhat.com/projects/%s", viper.GetString("pyxis_env"), projectID)
 	}
 
diff --git a/cmd/check_container.go b/cmd/check_container.go
index 51fef44..794e570 100644
--- a/cmd/check_container.go
+++ b/cmd/check_container.go
@@ -2,6 +2,7 @@ package cmd
 
 import (
 	"context"
+	"errors"
 	"fmt"
 	"strings"
 
@@ -11,6 +12,7 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/policy"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/version"
+
 	log "github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
 	"github.com/spf13/pflag"
@@ -27,25 +29,26 @@ func checkContainerCmd() *cobra.Command {
 		Args:  checkContainerPositionalArgs,
 		// this fmt.Sprintf is in place to keep spacing consistent with cobras two spaces that's used in: Usage, Flags, etc
 		Example: fmt.Sprintf("  %s", "preflight check container quay.io/repo-name/container-name:version"),
+		PreRunE: validateCertificationProjectId,
 		RunE:    checkContainerRunE,
 	}
 
 	checkContainerCmd.Flags().BoolVarP(&submit, "submit", "s", false, "submit check container results to red hat")
-	viper.BindPFlag("submit", checkContainerCmd.Flags().Lookup("submit"))
+	_ = viper.BindPFlag("submit", checkContainerCmd.Flags().Lookup("submit"))
 
 	checkContainerCmd.Flags().String("pyxis-api-token", "", "API token for Pyxis authentication (env: PFLT_PYXIS_API_TOKEN)")
-	viper.BindPFlag("pyxis_api_token", checkContainerCmd.Flags().Lookup("pyxis-api-token"))
+	_ = viper.BindPFlag("pyxis_api_token", checkContainerCmd.Flags().Lookup("pyxis-api-token"))
 
 	checkContainerCmd.Flags().String("pyxis-host", "", fmt.Sprintf("Host to use for Pyxis submissions. This will override Pyxis Env. Only set this if you know what you are doing.\n"+
 		"If you do set it, it should include just the host, and the URI path. (env: PFLT_PYXIS_HOST)"))
-	viper.BindPFlag("pyxis_host", checkContainerCmd.Flags().Lookup("pyxis-host"))
+	_ = viper.BindPFlag("pyxis_host", checkContainerCmd.Flags().Lookup("pyxis-host"))
 
 	checkContainerCmd.Flags().String("pyxis-env", certification.DefaultPyxisEnv, "Env to use for Pyxis submissions.")
-	viper.BindPFlag("pyxis_env", checkContainerCmd.Flags().Lookup("pyxis-env"))
+	_ = viper.BindPFlag("pyxis_env", checkContainerCmd.Flags().Lookup("pyxis-env"))
 
 	checkContainerCmd.Flags().String("certification-project-id", "", fmt.Sprintf("Certification Project ID from connect.redhat.com/projects/{certification-project-id}/overview\n"+
 		"URL paramater. This value may differ from the PID on the overview page. (env: PFLT_CERTIFICATION_PROJECT_ID)"))
-	viper.BindPFlag("certification_project_id", checkContainerCmd.Flags().Lookup("certification-project-id"))
+	_ = viper.BindPFlag("certification_project_id", checkContainerCmd.Flags().Lookup("certification-project-id"))
 
 	return checkContainerCmd
 }
@@ -157,7 +160,7 @@ func getContainerPolicyExceptions(ctx context.Context, pc pyxisClient) (policy.P
 		return "", fmt.Errorf("could not retrieve project: %w", err)
 	}
 	log.Debugf("Certification project name is: %s", certProject.Name)
-	if certProject.Container.OsContentType == "scratch" {
+	if certProject.Container.Type == "scratch" {
 		return policy.PolicyScratch, nil
 	}
 
@@ -203,7 +206,25 @@ func checkContainerPositionalArgs(cmd *cobra.Command, args []string) error {
 		if strings.HasPrefix(viper.GetString("pyxis_api_token"), "--") || strings.HasPrefix(viper.GetString("certification_project_id"), "--") {
 			return fmt.Errorf("pyxis API token and certification ID are required when --submit is present")
 		}
+	}
+
+	return nil
+}
+
+// validateCertificationProjectId validates that the certification project id is in the proper format
+// and throws an error if the value provided is in a legacy format that is not usable to query pyxis
+func validateCertificationProjectId(cmd *cobra.Command, args []string) error {
+	certificationProjectID := viper.GetString("certification_project_id")
+	// splitting the certification project id into parts. if there are more than 2 elements in the array,
+	// we know they inputted a legacy project id, which can not be used to query pyxis
+	parts := strings.Split(certificationProjectID, "-")
+
+	if len(parts) > 2 {
+		return errors.New(fmt.Sprintf("certification project id: %s is improperly formatted see help command for instructions on obtaining proper value", certificationProjectID))
+	}
 
+	if parts[0] == "ospid" {
+		viper.Set("certification_project_id", parts[1])
 	}
 
 	return nil
diff --git a/cmd/check_operator.go b/cmd/check_operator.go
index 37e701b..6199720 100644
--- a/cmd/check_operator.go
+++ b/cmd/check_operator.go
@@ -10,6 +10,7 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/policy"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/version"
+
 	log "github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
 	"github.com/spf13/viper"
@@ -26,23 +27,23 @@ func checkOperatorCmd() *cobra.Command {
 		RunE:    checkOperatorRunE,
 	}
 	checkOperatorCmd.Flags().String("namespace", "", "The namespace to use when running OperatorSDK Scorecard. (env: PFLT_NAMESPACE)")
-	viper.BindPFlag("namespace", checkOperatorCmd.Flags().Lookup("namespace"))
+	_ = viper.BindPFlag("namespace", checkOperatorCmd.Flags().Lookup("namespace"))
 
 	checkOperatorCmd.Flags().String("serviceaccount", "", "The service account to use when running OperatorSDK Scorecard. (env: PFLT_SERVICEACCOUNT)")
-	viper.BindPFlag("serviceaccount", checkOperatorCmd.Flags().Lookup("serviceaccount"))
+	_ = viper.BindPFlag("serviceaccount", checkOperatorCmd.Flags().Lookup("serviceaccount"))
 
 	checkOperatorCmd.Flags().String("scorecard-image", "", "A uri that points to the scorecard image digest, used in disconnected environments.\n"+
 		"It should only be used in a disconnected environment. Use preflight runtime-assets on a connected \n"+
 		"workstation to generate the digest that needs to be mirrored. (env: PFLT_SCORECARD_IMAGE)")
-	viper.BindPFlag("scorecard_image", checkOperatorCmd.Flags().Lookup("scorecard-image"))
+	_ = viper.BindPFlag("scorecard_image", checkOperatorCmd.Flags().Lookup("scorecard-image"))
 
 	checkOperatorCmd.Flags().String("scorecard-wait-time", "", "A time value that will be passed to scorecard's --wait-time environment variable.\n"+
 		"(env: PFLT_SCORECARD_WAIT_TIME)")
-	viper.BindPFlag("scorecard_wait_time", checkOperatorCmd.Flags().Lookup("scorecard-wait-time"))
+	_ = viper.BindPFlag("scorecard_wait_time", checkOperatorCmd.Flags().Lookup("scorecard-wait-time"))
 
 	checkOperatorCmd.Flags().String("channel", "", "The name of the operator channel which is used by DeployableByOLM to deploy the operator.\n"+
 		"If empty, the default operator channel in bundle's annotations file is used.. (env: PFLT_CHANNEL)")
-	viper.BindPFlag("channel", checkOperatorCmd.Flags().Lookup("channel"))
+	_ = viper.BindPFlag("channel", checkOperatorCmd.Flags().Lookup("channel"))
 
 	return checkOperatorCmd
 }
diff --git a/cmd/list_checks.go b/cmd/list_checks.go
index c73c24f..b05ec8e 100644
--- a/cmd/list_checks.go
+++ b/cmd/list_checks.go
@@ -7,6 +7,7 @@ import (
 	"strings"
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
+
 	"github.com/spf13/cobra"
 )
 
diff --git a/cmd/preflight_check.go b/cmd/preflight_check.go
index 5c2b2df..8f3a5c4 100644
--- a/cmd/preflight_check.go
+++ b/cmd/preflight_check.go
@@ -10,6 +10,7 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/formatters"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	log "github.com/sirupsen/logrus"
 )
 
@@ -17,7 +18,7 @@ import (
 func preflightCheck(
 	ctx context.Context,
 	cfg *runtime.Config,
-	pc pyxisClient,
+	pc pyxisClient, //nolint:unparam // pyxisClient is currently unused.
 	eng engine.CheckEngine,
 	formatter formatters.ResponseFormatter,
 	rw resultWriter,
diff --git a/cmd/root.go b/cmd/root.go
index b754cdc..f51e078 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -8,6 +8,7 @@ import (
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/version"
+
 	log "github.com/sirupsen/logrus"
 	"github.com/spf13/cobra"
 	"github.com/spf13/viper"
@@ -30,10 +31,10 @@ func rootCmd() *cobra.Command {
 	}
 
 	rootCmd.PersistentFlags().String("logfile", "", "Where the execution logfile will be written. (env: PFLT_LOGFILE)")
-	viper.BindPFlag("logfile", rootCmd.PersistentFlags().Lookup("logfile"))
+	_ = viper.BindPFlag("logfile", rootCmd.PersistentFlags().Lookup("logfile"))
 
 	rootCmd.PersistentFlags().String("loglevel", "", "The verbosity of the preflight tool itself. Ex. warn, debug, trace, info, error. (env: PFLT_LOGLEVEL)")
-	viper.BindPFlag("loglevel", rootCmd.PersistentFlags().Lookup("loglevel"))
+	_ = viper.BindPFlag("loglevel", rootCmd.PersistentFlags().Lookup("loglevel"))
 
 	rootCmd.AddCommand(checkCmd())
 	rootCmd.AddCommand(listChecksCmd())
diff --git a/cmd/runtime_assets.go b/cmd/runtime_assets.go
index 9caede7..910448f 100644
--- a/cmd/runtime_assets.go
+++ b/cmd/runtime_assets.go
@@ -7,6 +7,7 @@ import (
 	"io"
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	"github.com/spf13/cobra"
 )
 
@@ -37,7 +38,7 @@ func printAssets(ctx context.Context, w io.Writer) error {
 		return err
 	}
 
-	fmt.Fprintln(w, string(assetsJSON))
+	fmt.Fprintln(w, assetsJSON)
 	return nil
 }
 
diff --git a/cmd/types.go b/cmd/types.go
index b83fd28..472031d 100644
--- a/cmd/types.go
+++ b/cmd/types.go
@@ -13,6 +13,7 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
+
 	log "github.com/sirupsen/logrus"
 )
 
@@ -37,6 +38,8 @@ type pyxisClient interface {
 // newPyxisClient initializes a pyxisClient with relevant information from cfg.
 // If the the CertificationProjectID, PyxisAPIToken, or PyxisHost are empty, then nil is returned.
 // Callers should treat a nil pyxis client as an indicator that pyxis calls should not be made.
+//
+//nolint:unparam // ctx is unused. Keep for future use.
 func newPyxisClient(ctx context.Context, cfg certification.Config) pyxisClient {
 	if cfg.CertificationProjectID() == "" || cfg.PyxisAPIToken() == "" || cfg.PyxisHost() == "" {
 		return nil
@@ -81,7 +84,7 @@ func (s *containerCertificationSubmitter) Submit(ctx context.Context) error {
 	// only read the dockerfile if the user provides a location for the file
 	// at this point in the flow, if `cfg.DockerConfig` is empty we know the repo is public and can continue the submission flow
 	if s.dockerConfig != "" {
-		dockerConfigJsonBytes, err := os.ReadFile(s.dockerConfig)
+		dockerConfigJSONBytes, err := os.ReadFile(s.dockerConfig)
 		if err != nil {
 			return fmt.Errorf("could not open file for submission: %s: %w",
 				s.dockerConfig,
@@ -89,7 +92,7 @@ func (s *containerCertificationSubmitter) Submit(ctx context.Context) error {
 			)
 		}
 
-		certProject.Container.DockerConfigJSON = string(dockerConfigJsonBytes)
+		certProject.Container.DockerConfigJSON = string(dockerConfigJSONBytes)
 	}
 
 	// the below code is for the edge case where a partner has a DockerConfig in pyxis, but does not send one to preflight.
@@ -106,15 +109,15 @@ func (s *containerCertificationSubmitter) Submit(ctx context.Context) error {
 	submission, _ := pyxis.NewCertificationInput(certProject)
 
 	certImage, err := os.Open(path.Join(artifacts.Path(), certification.DefaultCertImageFilename))
-	defer certImage.Close()
 	if err != nil {
 		return fmt.Errorf("could not open file for submission: %s: %w",
 			certification.DefaultCertImageFilename,
 			err,
 		)
 	}
+	defer certImage.Close()
+
 	preflightResults, err := os.Open(path.Join(artifacts.Path(), certification.DefaultTestResultsFilename))
-	defer preflightResults.Close()
 	if err != nil {
 		return fmt.Errorf(
 			"could not open file for submission: %s: %w",
@@ -122,8 +125,9 @@ func (s *containerCertificationSubmitter) Submit(ctx context.Context) error {
 			err,
 		)
 	}
+	defer preflightResults.Close()
+
 	rpmManifest, err := os.Open(path.Join(artifacts.Path(), certification.DefaultRPMManifestFilename))
-	defer rpmManifest.Close()
 	if err != nil {
 		return fmt.Errorf(
 			"could not open file for submission: %s: %w",
@@ -131,8 +135,9 @@ func (s *containerCertificationSubmitter) Submit(ctx context.Context) error {
 			err,
 		)
 	}
+	defer rpmManifest.Close()
+
 	logfile, err := os.Open(s.preflightLogFile)
-	defer logfile.Close()
 	if err != nil {
 		return fmt.Errorf(
 			"could not open file for submission: %s: %w",
@@ -140,6 +145,8 @@ func (s *containerCertificationSubmitter) Submit(ctx context.Context) error {
 			err,
 		)
 	}
+	defer logfile.Close()
+
 	submission.
 		// The engine writes the certified image config to disk in a Pyxis-specific format.
 		WithCertImage(certImage).
diff --git a/go.mod b/go.mod
index 6aecdfa..174d0c5 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module github.com/redhat-openshift-ecosystem/openshift-preflight
 
-go 1.17
+go 1.19
 
 require (
 	github.com/blang/semver v3.5.1+incompatible
@@ -11,7 +11,7 @@ require (
 	github.com/onsi/gomega v1.20.0
 	github.com/openshift/api v0.0.0-20210910062324-a41d3573a3ba
 	github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142
-	github.com/operator-framework/api v0.15.0
+	github.com/operator-framework/api v0.16.0
 	github.com/operator-framework/operator-manifest-tools v0.2.1
 	github.com/shurcooL/graphql v0.0.0-20220606043923-3cf50f8a0a29
 	github.com/sirupsen/logrus v1.8.1
@@ -105,3 +105,5 @@ require (
 )
 
 replace github.com/knqyf263/go-rpmdb => github.com/opdev/go-rpmdb v0.0.0-20220719131451-751902254f35
+
+replace github.com/operator-framework/api v0.16.0 => github.com/operator-framework/api v0.16.1-0.20220823134246-5f99430d4ec4
diff --git a/go.sum b/go.sum
index 64ef06e..c6deaf2 100644
--- a/go.sum
+++ b/go.sum
@@ -665,8 +665,8 @@ github.com/openshift/build-machinery-go v0.0.0-20210423112049-9415d7ebd33e/go.mo
 github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 h1:ZHRIMCFIJN1p9LsJt4HQ+akDrys4PrYnXzOWI5LK03I=
 github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142/go.mod h1:fjS8r9mqDVsPb5td3NehsNOAWa4uiFkYEfVZioQ2gH0=
 github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/operator-framework/api v0.15.0 h1:4f9i0drtqHj7ykLoHxv92GR43S7MmQHhmFQkfm5YaGI=
-github.com/operator-framework/api v0.15.0/go.mod h1:scnY9xqSeCsOdtJtNoHIXd7OtHZ14gj1hkDA4+DlgLY=
+github.com/operator-framework/api v0.16.1-0.20220823134246-5f99430d4ec4 h1:juST/k+hHmKD/BlZ4GCzeDdxvNsxB4wHlDyfAPYmSrU=
+github.com/operator-framework/api v0.16.1-0.20220823134246-5f99430d4ec4/go.mod h1:kk8xJahHJR3bKqrA+A+1VIrhOTmyV76k+ARv+iV+u1Q=
 github.com/operator-framework/operator-manifest-tools v0.2.1 h1:hD3iyOm2mBItzYhpFFWqU1StkolS4XGvXxRvFO4v3Oo=
 github.com/operator-framework/operator-manifest-tools v0.2.1/go.mod h1:C4AmRDIJiM8WVyGyqoUuK3KlloZr7XqaabKMMKKhHtA=
 github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=


Test patch:
diff --git a/certification/artifacts/artifacts_test.go b/certification/artifacts/artifacts_test.go
index 45811e5..2b9fb10 100644
--- a/certification/artifacts/artifacts_test.go
+++ b/certification/artifacts/artifacts_test.go
@@ -40,7 +40,7 @@ var _ = Describe("Artifacts package utility functions", func() {
 
 		It("should be created by the exported WriteFile() function", func() {
 			createdDir := Path()
-			_, err := WriteFile("test.txt", "foo")
+			Expect(WriteFile("test.txt", "foo"))
 			dirInfo, err := os.Stat(createdDir)
 			// if it doesn't exist, this error will capture it.
 			Expect(err).ToNot(HaveOccurred())
diff --git a/certification/engine/engine_test.go b/certification/engine/engine_test.go
index a156456..bc12b2c 100644
--- a/certification/engine/engine_test.go
+++ b/certification/engine/engine_test.go
@@ -3,10 +3,11 @@ package engine
 import (
 	"context"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/policy"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 var _ = Describe("Engine Creation", func() {
diff --git a/certification/formatters/formatters_test.go b/certification/formatters/formatters_test.go
index 2de88e7..0897ece 100644
--- a/certification/formatters/formatters_test.go
+++ b/certification/formatters/formatters_test.go
@@ -4,9 +4,10 @@ import (
 	"context"
 	"fmt"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
 )
 
 var _ = Describe("Formatters", func() {
@@ -46,7 +47,8 @@ var _ = Describe("Formatters", func() {
 	Describe("When creating a new generic formatter", func() {
 		Context("with improper arguments", func() {
 			expectedResult := []byte(fmt.Errorf("failed to create a new generic formatter: formatter name is required").Error())
-			var fn FormatterFunc = func(context.Context, runtime.Results) ([]byte, error) {
+			var fn FormatterFunc //nolint:gosimple // We want to be explicit here for clarity
+			fn = func(context.Context, runtime.Results) ([]byte, error) {
 				return expectedResult, nil
 			}
 
@@ -58,10 +60,11 @@ var _ = Describe("Formatters", func() {
 		})
 
 		Context("with proper arguments", func() {
-			var expectedResult []byte = []byte("this is a test")
-			var name string = "testFormatter"
-			var extension string = "txt"
-			var fn FormatterFunc = func(context.Context, runtime.Results) ([]byte, error) {
+			expectedResult := []byte("this is a test")
+			name := "testFormatter"
+			extension := "txt"
+			var fn FormatterFunc //nolint:gosimple // We want to be explicit here for clarity
+			fn = func(context.Context, runtime.Results) ([]byte, error) {
 				return expectedResult, nil
 			}
 
diff --git a/certification/formatters/generic_test.go b/certification/formatters/generic_test.go
index 118f893..783ba95 100644
--- a/certification/formatters/generic_test.go
+++ b/certification/formatters/generic_test.go
@@ -11,6 +11,7 @@ import (
 
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	"gotest.tools/v3/assert"
 )
 
@@ -22,13 +23,13 @@ func TestGenericJSONFormatter(t *testing.T) {
 			Passed: []runtime.Result{
 				{
 					Check:       certification.NewGenericCheck("passed1", nil, certification.Metadata{}, certification.HelpText{}),
-					ElapsedTime: time.Duration(1000 * time.Millisecond),
+					ElapsedTime: 1000 * time.Millisecond,
 				},
 			},
 			Failed: []runtime.Result{
 				{
 					Check:       certification.NewGenericCheck("failed1", nil, certification.Metadata{}, certification.HelpText{}),
-					ElapsedTime: time.Duration(1001 * time.Millisecond),
+					ElapsedTime: 1001 * time.Millisecond,
 				},
 			},
 		}
@@ -55,7 +56,6 @@ func TestGenericJSONFormatter(t *testing.T) {
 	}
 
 	for _, tc := range testCases {
-
 		// Patch the function if we expect an error
 		if tc.marshalIndentFailure {
 			jsonMarshalIndent = func(v interface{}, prefix, indent string) ([]byte, error) {
@@ -99,13 +99,13 @@ func TestGenericXMLFormatter(t *testing.T) {
 			Passed: []runtime.Result{
 				{
 					Check:       certification.NewGenericCheck("passed1", nil, certification.Metadata{}, certification.HelpText{}),
-					ElapsedTime: time.Duration(1000 * time.Millisecond),
+					ElapsedTime: 1000 * time.Millisecond,
 				},
 			},
 			Failed: []runtime.Result{
 				{
 					Check:       certification.NewGenericCheck("failed1", nil, certification.Metadata{}, certification.HelpText{}),
-					ElapsedTime: time.Duration(1001 * time.Millisecond),
+					ElapsedTime: 1001 * time.Millisecond,
 				},
 			},
 		}
@@ -132,7 +132,6 @@ func TestGenericXMLFormatter(t *testing.T) {
 	}
 
 	for _, tc := range testCases {
-
 		// Patch the function if we expect an error
 		if tc.marshalIndentFailure {
 			xmlMarshalIndent = func(v interface{}, prefix, indent string) ([]byte, error) {
diff --git a/certification/formatters/junitxml_test.go b/certification/formatters/junitxml_test.go
index ac98384..c1d98b2 100644
--- a/certification/formatters/junitxml_test.go
+++ b/certification/formatters/junitxml_test.go
@@ -4,10 +4,11 @@ import (
 	"context"
 	"errors"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 var _ = Describe("JUnitXML Formatter", func() {
diff --git a/certification/generic_check_test.go b/certification/generic_check_test.go
index ef82dd6..0cd7972 100644
--- a/certification/generic_check_test.go
+++ b/certification/generic_check_test.go
@@ -9,7 +9,7 @@ import (
 )
 
 var _ = Describe("Generic check tests", func() {
-	var validatorFn ValidatorFunc = func(ctx context.Context, imageRef ImageReference) (bool, error) {
+	validatorFn := func(ctx context.Context, imageRef ImageReference) (bool, error) { //nolint:unparam // ctx param is unused
 		switch imageRef.ImageFSPath {
 		case "error":
 			return false, errors.New("invalid validator")
@@ -19,10 +19,10 @@ var _ = Describe("Generic check tests", func() {
 			return true, nil
 		}
 	}
-	var metadata Metadata = Metadata{
+	metadata := Metadata{
 		Description: "test metadata",
 	}
-	var helpText HelpText = HelpText{
+	helpText := HelpText{
 		Message: "test message",
 	}
 	When("A generic check is created", func() {
diff --git a/certification/internal/bundle/bundle_suite_test.go b/certification/internal/bundle/bundle_suite_test.go
index 1045758..ea831af 100644
--- a/certification/internal/bundle/bundle_suite_test.go
+++ b/certification/internal/bundle/bundle_suite_test.go
@@ -5,10 +5,10 @@ import (
 	"errors"
 	"testing"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+
 	. "github.com/onsi/ginkgo/v2/dsl/core"
 	. "github.com/onsi/gomega"
-
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
 )
 
 func TestBundle(t *testing.T) {
diff --git a/certification/internal/bundle/bundle_test.go b/certification/internal/bundle/bundle_test.go
index acc7d09..09f5e63 100644
--- a/certification/internal/bundle/bundle_test.go
+++ b/certification/internal/bundle/bundle_test.go
@@ -1,42 +1,27 @@
 package bundle
 
 import (
+	"bytes"
 	"context"
 	"os"
 	"path/filepath"
-	"strings"
+
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 var _ = Describe("BundleValidateCheck", func() {
 	const (
-		clusterServiceVersionFilename = "myoperator.clusterserviceversion.yaml"
-		manifestsDir                  = "manifests"
-		metadataDir                   = "metadata"
-		annotationFilename            = "annotations.yaml"
-		annotations                   = `annotations:
+		manifestsDir       = "manifests"
+		metadataDir        = "metadata"
+		annotationFilename = "annotations.yaml"
+		annotations        = `annotations:
   com.redhat.openshift.versions: "v4.6-v4.9"
   operators.operatorframework.io.bundle.package.v1: testPackage
   operators.operatorframework.io.bundle.channel.default.v1: testChannel
 `
-		csvContents = `spec:
-  install:
-    spec:
-      deployments:
-      - spec:
-          template:
-            spec:
-              containers:
-              - image: registry.example.io/foo/bar@sha256:f000432f07cd187469f0310e3ed9dcf9a5db2be14b8bab9c5293dd1ee8518176
-
-  relatedImages:
-  - name: the-operator
-    image: registry.example.io/foo/bar@sha256:f000432f07cd187469f0310e3ed9dcf9a5db2be14b8bab9c5293dd1ee8518176
-  - name: the-proxy
-    image: registry.example.io/foo/proxy@sha256:5e33f9d095952866b9743cc8268fb740cce6d93439f00ce333a2de1e5974837e`
 	)
 
 	Describe("Bundle validation", func() {
@@ -111,134 +96,16 @@ var _ = Describe("BundleValidateCheck", func() {
 				Expect(report).ToNot(BeNil())
 			})
 		})
-
-		Context("the annotations file has a bad OpenShift version", func() {
-			JustBeforeEach(func() {
-				err := os.WriteFile(filepath.Join(imageRef.ImageFSPath, metadataDir, annotationFilename), []byte(`annotations:
-  com.redhat.openshift.versions: "vfoo"`), 0o644)
-				Expect(err).ToNot(HaveOccurred())
-			})
-			It("should fail", func() {
-				report, err := Validate(context.Background(), fakeEngine, imageRef.ImageFSPath)
-				Expect(err).To(HaveOccurred())
-				Expect(report).To(BeNil())
-			})
-		})
-
-		Context("getting the CSV file from the bundle", func() {
-			var manifestsPath string
-
-			BeforeEach(func() {
-				manifestsPath = filepath.Join(imageRef.ImageFSPath, manifestsDir)
-				err := os.WriteFile(filepath.Join(manifestsPath, clusterServiceVersionFilename), []byte(""), 0o644)
-				Expect(err).ToNot(HaveOccurred())
-			})
-			Context("the CSV is malformed", func() {
-				It("should error", func() {
-					r := strings.NewReader("badcsv::bad")
-					images, err := GetSupportedInstallModes(context.TODO(), r)
-					Expect(err).To(HaveOccurred())
-					Expect(images).To(BeNil())
-				})
-			})
-			Context("the CSV could not be read", func() {
-				It("should error", func() {
-					images, err := GetSupportedInstallModes(context.TODO(), errReader(0))
-					Expect(err).To(HaveOccurred())
-					Expect(images).To(BeNil())
-				})
-			})
-			Context("the CSV exists by itself", func() {
-				It("should return the filename", func() {
-					filename, err := GetCsvFilePathFromBundle(imageRef.ImageFSPath)
-					Expect(err).ToNot(HaveOccurred())
-					Expect(filename).To(Equal(filepath.Join(manifestsPath, clusterServiceVersionFilename)))
-				})
-			})
-			Context("the CSV doesn't exist", func() {
-				JustBeforeEach(func() {
-					err := os.Remove(filepath.Join(manifestsPath, clusterServiceVersionFilename))
-					Expect(err).ToNot(HaveOccurred())
-				})
-				It("should return an error", func() {
-					filename, err := GetCsvFilePathFromBundle(imageRef.ImageFSPath)
-					Expect(err).To(HaveOccurred())
-					Expect(filename).To(Equal(""))
-				})
-			})
-			Context("there is more than one CSV", func() {
-				JustBeforeEach(func() {
-					err := os.WriteFile(filepath.Join(manifestsPath, "otheroperator.clusterserviceversion.yaml"), []byte(""), 0o664)
-					Expect(err).ToNot(HaveOccurred())
-				})
-				It("should return an error", func() {
-					filename, err := GetCsvFilePathFromBundle(imageRef.ImageFSPath)
-					Expect(err).To(HaveOccurred())
-					Expect(filename).To(Equal(""))
-				})
-			})
-			Context("there is a bad mount dir", func() {
-				It("should return an error", func() {
-					filename, err := GetCsvFilePathFromBundle("[]")
-					Expect(err).To(HaveOccurred())
-					Expect(filename).To(Equal(""))
-				})
-			})
-		})
-	})
-
-	Describe("Supported Install Modes", func() {
-		var csv string = `spec:
-  installModes:
-  - supported: true
-    type: OwnNamespace
-  - supported: true
-    type: SingleNamespace
-  - supported: false
-    type: MultiNamespace
-  - supported: true
-    type: AllNamespaces`
-
-		Context("CSV is valid", func() {
-			It("should return a map of 3", func() {
-				installModes, err := GetSupportedInstallModes(context.Background(), strings.NewReader(csv))
-				Expect(err).ToNot(HaveOccurred())
-				Expect(installModes).ToNot(BeNil())
-				Expect(len(installModes)).To(Equal(3))
-				Expect("MultiNamespace").ToNot(BeElementOf(installModes))
-			})
-		})
-
-		Context("reader is not valid", func() {
-			It("should error", func() {
-				installModes, err := GetSupportedInstallModes(context.Background(), errReader(0))
-				Expect(err).To(HaveOccurred())
-				Expect(installModes).To(BeNil())
-			})
-		})
-
-		Context("CSV is invalid", func() {
-			JustBeforeEach(func() {
-				csv = `invalid`
-			})
-			It("should error", func() {
-				installModes, err := GetSupportedInstallModes(context.Background(), strings.NewReader(csv))
-				Expect(err).To(HaveOccurred())
-				Expect(installModes).To(BeNil())
-			})
-		})
 	})
 
 	Describe("While ensuring that container util is working", func() {
 		// tests: extractAnnotationsBytes
 		Context("with an annotations yaml data read from disk", func() {
 			Context("with the correct format", func() {
-				data := []byte("annotations:\n foo: bar")
-
 				It("should properly marshal to a map[string]string", func() {
-					annotations, err := ExtractAnnotationsBytes(context.TODO(), data)
+					annotations, err := LoadAnnotations(context.TODO(), bytes.NewReader([]byte(annotations)))
 					Expect(err).ToNot(HaveOccurred())
-					Expect(annotations["foo"]).To(Equal("bar"))
+					Expect(annotations.DefaultChannelName).To(Equal("testChannel"))
 				})
 			})
 
@@ -246,7 +113,7 @@ var _ = Describe("BundleValidateCheck", func() {
 				data := []byte{}
 
 				It("should return an error", func() {
-					_, err := ExtractAnnotationsBytes(context.TODO(), data)
+					_, err := LoadAnnotations(context.TODO(), bytes.NewReader(data))
 					Expect(err).To(HaveOccurred())
 				})
 			})
@@ -255,14 +122,14 @@ var _ = Describe("BundleValidateCheck", func() {
 				data := []byte(`malformed`)
 
 				It("should return an error", func() {
-					_, err := ExtractAnnotationsBytes(context.TODO(), data)
+					_, err := LoadAnnotations(context.TODO(), bytes.NewReader(data))
 					Expect(err).To(HaveOccurred())
 				})
 			})
 
 			Context("a bad reader is sent to GetAnnotations", func() {
 				It("should return an error", func() {
-					annotations, err := GetAnnotations(context.Background(), errReader(0))
+					annotations, err := LoadAnnotations(context.TODO(), errReader(0))
 					Expect(err).To(HaveOccurred())
 					Expect(annotations).To(BeNil())
 				})
diff --git a/certification/internal/engine/engine_test.go b/certification/internal/engine/engine_test.go
index 1327ebf..c43efff 100644
--- a/certification/internal/engine/engine_test.go
+++ b/certification/internal/engine/engine_test.go
@@ -10,14 +10,15 @@ import (
 	"net/url"
 	"os"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	"github.com/google/go-containerregistry/pkg/crane"
 	"github.com/google/go-containerregistry/pkg/registry"
 	"github.com/google/go-containerregistry/pkg/v1/random"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
 )
 
 var _ = Describe("Execute Checks tests", func() {
@@ -43,6 +44,7 @@ var _ = Describe("Execute Checks tests", func() {
 		Expect(err).ToNot(HaveOccurred())
 
 		tmpDir, err := os.MkdirTemp("", "preflight-engine-test-*")
+		Expect(err).ToNot(HaveOccurred())
 		DeferCleanup(os.RemoveAll, tmpDir)
 		artifacts.SetDir(tmpDir)
 
diff --git a/certification/internal/openshift/openshift_test.go b/certification/internal/openshift/openshift_test.go
index ab5d257..9fade00 100644
--- a/certification/internal/openshift/openshift_test.go
+++ b/certification/internal/openshift/openshift_test.go
@@ -7,11 +7,10 @@ import (
 	. "github.com/onsi/gomega"
 
 	imagestreamv1 "github.com/openshift/api/image/v1"
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
+	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	apiruntime "k8s.io/apimachinery/pkg/runtime"
-
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
 )
 
@@ -85,7 +84,7 @@ var _ = Describe("OpenShift Engine", func() {
 			},
 		}
 
-		csv := operatorv1alpha1.ClusterServiceVersion{
+		csv := operatorsv1alpha1.ClusterServiceVersion{
 			ObjectMeta: metav1.ObjectMeta{
 				Name:      "testcsv",
 				Namespace: "testns",
diff --git a/certification/internal/openshift/openshift_version_test.go b/certification/internal/openshift/openshift_version_test.go
index 568fae0..8c9fc63 100644
--- a/certification/internal/openshift/openshift_version_test.go
+++ b/certification/internal/openshift/openshift_version_test.go
@@ -3,9 +3,10 @@ package openshift
 import (
 	"os"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
 )
 
 var _ = Describe("OpenShift Version", func() {
diff --git a/certification/internal/operatorsdk/operatorsdk_test.go b/certification/internal/operatorsdk/operatorsdk_test.go
index 0ae2950..1841e12 100644
--- a/certification/internal/operatorsdk/operatorsdk_test.go
+++ b/certification/internal/operatorsdk/operatorsdk_test.go
@@ -7,9 +7,10 @@ import (
 	"os/exec"
 	"testing"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 )
 
 const (
@@ -97,7 +98,7 @@ func TestShellProcessSuccess(t *testing.T) {
 	if os.Getenv("GO_TEST_PROCESS") != "1" {
 		return
 	}
-	fmt.Fprintf(os.Stdout, testStdoutValue)
+	fmt.Fprint(os.Stdout, testStdoutValue)
 	os.Exit(0)
 }
 
@@ -105,7 +106,7 @@ func TestShellProcessFail(t *testing.T) {
 	if os.Getenv("GO_TEST_PROCESS") != "1" {
 		return
 	}
-	fmt.Fprintf(os.Stderr, "FATA")
+	fmt.Fprint(os.Stderr, "FATA")
 	os.Exit(1)
 }
 
@@ -113,7 +114,7 @@ func TestBundleValidateProcessSuccess(t *testing.T) {
 	if os.Getenv("GO_TEST_PROCESS") != "1" {
 		return
 	}
-	fmt.Fprintf(os.Stdout, testBundleValidateStdoutValue)
+	fmt.Fprint(os.Stdout, testBundleValidateStdoutValue)
 	os.Exit(0)
 }
 
@@ -121,7 +122,7 @@ func TestBundleValidateProcessError(t *testing.T) {
 	if os.Getenv("GO_TEST_PROCESS") != "1" {
 		return
 	}
-	fmt.Fprintf(os.Stdout, "FATA")
+	fmt.Fprint(os.Stdout, "FATA")
 	os.Exit(0)
 }
 
diff --git a/certification/internal/policy/container/base_on_ubi_test.go b/certification/internal/policy/container/base_on_ubi_test.go
index d9c9b70..97df3b1 100644
--- a/certification/internal/policy/container/base_on_ubi_test.go
+++ b/certification/internal/policy/container/base_on_ubi_test.go
@@ -5,12 +5,13 @@ import (
 	"net/http"
 	"os"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
+
 	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	fakecranev1 "github.com/google/go-containerregistry/pkg/v1/fake"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
 )
 
 func ConfigFile() (*cranev1.ConfigFile, error) {
diff --git a/certification/internal/policy/container/container_suite_test.go b/certification/internal/policy/container/container_suite_test.go
index 1193ef8..0a3772d 100644
--- a/certification/internal/policy/container/container_suite_test.go
+++ b/certification/internal/policy/container/container_suite_test.go
@@ -4,11 +4,12 @@ import (
 	"io"
 	"testing"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	v1 "github.com/google/go-containerregistry/pkg/v1"
 	"github.com/google/go-containerregistry/pkg/v1/types"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	log "github.com/sirupsen/logrus"
 )
 
diff --git a/certification/internal/policy/container/has_license_test.go b/certification/internal/policy/container/has_license_test.go
index cd52c76..ec4f4ed 100644
--- a/certification/internal/policy/container/has_license_test.go
+++ b/certification/internal/policy/container/has_license_test.go
@@ -5,9 +5,10 @@ import (
 	"os"
 	"path/filepath"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 const (
diff --git a/certification/internal/policy/container/has_modifed_files_test.go b/certification/internal/policy/container/has_modifed_files_test.go
index 3800b96..841cc16 100644
--- a/certification/internal/policy/container/has_modifed_files_test.go
+++ b/certification/internal/policy/container/has_modifed_files_test.go
@@ -4,10 +4,11 @@ import (
 	"context"
 	"path"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	rpmdb "github.com/knqyf263/go-rpmdb/pkg"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 var _ = Describe("HasModifiedFiles", func() {
@@ -23,13 +24,13 @@ var _ = Describe("HasModifiedFiles", func() {
 					"this",
 					"is",
 					"not",
-					"prohibitted",
+					"prohibited",
 				},
 				{
 					"there",
 					"are",
 					"no",
-					"prohibitted",
+					"prohibited",
 					"duplicates",
 				},
 			},
diff --git a/certification/internal/policy/container/has_prohibited_packages_test.go b/certification/internal/policy/container/has_prohibited_packages_test.go
index b5273fa..2e3d573 100644
--- a/certification/internal/policy/container/has_prohibited_packages_test.go
+++ b/certification/internal/policy/container/has_prohibited_packages_test.go
@@ -18,7 +18,7 @@ var _ = Describe("HasNoProhibitedPackages", func() {
 			"this",
 			"is",
 			"not",
-			"prohibitted",
+			"prohibited",
 		}
 	})
 
diff --git a/certification/internal/policy/container/has_required_labels_test.go b/certification/internal/policy/container/has_required_labels_test.go
index a569a31..b28b67c 100644
--- a/certification/internal/policy/container/has_required_labels_test.go
+++ b/certification/internal/policy/container/has_required_labels_test.go
@@ -3,11 +3,12 @@ package container
 import (
 	"context"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	fakecranev1 "github.com/google/go-containerregistry/pkg/v1/fake"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 func getLabels(bad bool) map[string]string {
diff --git a/certification/internal/policy/container/has_unique_tag_test.go b/certification/internal/policy/container/has_unique_tag_test.go
index 2accfc5..833c7a2 100644
--- a/certification/internal/policy/container/has_unique_tag_test.go
+++ b/certification/internal/policy/container/has_unique_tag_test.go
@@ -11,16 +11,17 @@ import (
 	"net/http/httptest"
 	"net/url"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	"github.com/google/go-containerregistry/pkg/crane"
 	"github.com/google/go-containerregistry/pkg/registry"
 	"github.com/google/go-containerregistry/pkg/v1/random"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 var _ = Describe("UniqueTag", func() {
-	var hasUniqueTagCheck hasUniqueTagCheck = *NewHasUniqueTagCheck("")
+	hasUniqueTagCheck := *NewHasUniqueTagCheck("")
 	var src, dst, host string
 
 	BeforeEach(func() {
@@ -124,14 +125,6 @@ var _ = Describe("UniqueTag", func() {
 	AssertMetaData(&hasUniqueTagCheck)
 })
 
-func validImageTags() []string {
-	return []string{"0.0.1", "0.0.2", "latest"}
-}
-
-func invalidImageTags() []string {
-	return []string{"latest"}
-}
-
 func emptyImageTags() []string {
 	return []string{}
 }
@@ -162,6 +155,5 @@ func mockRegistry(resp http.ResponseWriter, req *http.Request) {
 	jbod, _ := json.Marshal(tagsResp)
 	resp.Header().Set("Content-Length", fmt.Sprint(len(jbod)))
 	resp.WriteHeader(http.StatusOK)
-	io.Copy(resp, bytes.NewReader([]byte(jbod)))
-	return
+	_, _ = io.Copy(resp, bytes.NewReader(jbod))
 }
diff --git a/certification/internal/policy/container/max_layers_test.go b/certification/internal/policy/container/max_layers_test.go
index 16fb400..3732761 100644
--- a/certification/internal/policy/container/max_layers_test.go
+++ b/certification/internal/policy/container/max_layers_test.go
@@ -3,11 +3,12 @@ package container
 import (
 	"context"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	fakecranev1 "github.com/google/go-containerregistry/pkg/v1/fake"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 func generateLayers(layerCount int) []cranev1.Layer {
diff --git a/certification/internal/policy/container/runs_as_nonroot_test.go b/certification/internal/policy/container/runs_as_nonroot_test.go
index 516a99b..6855511 100644
--- a/certification/internal/policy/container/runs_as_nonroot_test.go
+++ b/certification/internal/policy/container/runs_as_nonroot_test.go
@@ -3,11 +3,12 @@ package container
 import (
 	"context"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	cranev1 "github.com/google/go-containerregistry/pkg/v1"
 	fakecranev1 "github.com/google/go-containerregistry/pkg/v1/fake"
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 func userConfigFile(user string) (*cranev1.ConfigFile, error) {
@@ -26,7 +27,7 @@ func configFileWithGoodUser() (*cranev1.ConfigFile, error) {
 	return userConfigFile("1000")
 }
 
-func configFileWithRootUid() (*cranev1.ConfigFile, error) {
+func configFileWithRootUID() (*cranev1.ConfigFile, error) {
 	return userConfigFile("0")
 }
 
@@ -86,7 +87,7 @@ var _ = Describe("RunAsNonRoot", func() {
 		Context("When manifest user is UID 0", func() {
 			BeforeEach(func() {
 				fakeImage := fakecranev1.FakeImage{
-					ConfigFileStub: configFileWithRootUid,
+					ConfigFileStub: configFileWithRootUID,
 				}
 				imageRef.ImageInfo = &fakeImage
 			})
diff --git a/certification/internal/policy/operator/certified_images_test.go b/certification/internal/policy/operator/certified_images_test.go
index 4e694af..8f923b2 100644
--- a/certification/internal/policy/operator/certified_images_test.go
+++ b/certification/internal/policy/operator/certified_images_test.go
@@ -6,10 +6,11 @@ import (
 	"os"
 	"path/filepath"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 type certifiedImageFinder struct{}
diff --git a/certification/internal/policy/operator/deployable_by_olm_test.go b/certification/internal/policy/operator/deployable_by_olm_test.go
index 9bbd668..c0c498f 100644
--- a/certification/internal/policy/operator/deployable_by_olm_test.go
+++ b/certification/internal/policy/operator/deployable_by_olm_test.go
@@ -6,20 +6,18 @@ import (
 	"path/filepath"
 	"time"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/openshift"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
 
 	fakecranev1 "github.com/google/go-containerregistry/pkg/v1/fake"
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	apiruntime "k8s.io/apimachinery/pkg/runtime"
 	crclient "sigs.k8s.io/controller-runtime/pkg/client"
 	"sigs.k8s.io/controller-runtime/pkg/client/fake"
-
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
-
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/openshift"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
 )
 
 var _ = Describe("DeployableByOLMCheck", func() {
@@ -40,6 +38,7 @@ var _ = Describe("DeployableByOLMCheck", func() {
 		annotations            = `annotations:
   operators.operatorframework.io.bundle.package.v1: testPackage
   operators.operatorframework.io.bundle.channel.default.v1: testChannel
+  operators.operatorframework.io.bundle.channels.v1: testChannel
 `
 		registryAuthToken = `{
 "auths": {
@@ -49,17 +48,18 @@ var _ = Describe("DeployableByOLMCheck", func() {
   }
 }`
 
-		csvStr = `
-    spec:
-      installModes:
-        - supported: false
-          type: OwnNamespace
-        - supported: false
-          type: SingleNamespace
-        - supported: false
-          type: MultiNamespace
-        - supported: true
-          type: AllNamespaces
+		csvStr = `apiVersion: operators.coreos.com/v1alpha1
+kind: ClusterServiceVersion
+spec:
+  installModes:
+    - supported: false
+      type: OwnNamespace
+    - supported: false
+      type: SingleNamespace
+    - supported: false
+      type: MultiNamespace
+    - supported: true
+      type: AllNamespaces
 `
 	)
 	BeforeEach(func() {
diff --git a/certification/internal/policy/operator/operator_suite_test.go b/certification/internal/policy/operator/operator_suite_test.go
index 55ba5f9..4064c3f 100644
--- a/certification/internal/policy/operator/operator_suite_test.go
+++ b/certification/internal/policy/operator/operator_suite_test.go
@@ -5,13 +5,14 @@ import (
 	"errors"
 	"testing"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
 	imagestreamv1 "github.com/openshift/api/image/v1"
-	operatorv1 "github.com/operator-framework/api/pkg/operators/v1"
-	operatorv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+	operatorsv1 "github.com/operator-framework/api/pkg/operators/v1"
+	operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1"
 	log "github.com/sirupsen/logrus"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -106,36 +107,36 @@ var pods = corev1.PodList{
 	},
 }
 
-var csv = operatorv1alpha1.ClusterServiceVersion{
+var csv = operatorsv1alpha1.ClusterServiceVersion{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "csv-v0.0.0",
 		Namespace: "testPackage-target",
 	},
-	Spec: operatorv1alpha1.ClusterServiceVersionSpec{},
-	Status: operatorv1alpha1.ClusterServiceVersionStatus{
-		Phase: operatorv1alpha1.CSVPhaseSucceeded,
+	Spec: operatorsv1alpha1.ClusterServiceVersionSpec{},
+	Status: operatorsv1alpha1.ClusterServiceVersionStatus{
+		Phase: operatorsv1alpha1.CSVPhaseSucceeded,
 	},
 }
 
-var csvDefault = operatorv1alpha1.ClusterServiceVersion{
+var csvDefault = operatorsv1alpha1.ClusterServiceVersion{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "csv-v0.0.0",
 		Namespace: "default",
 	},
-	Spec: operatorv1alpha1.ClusterServiceVersionSpec{},
-	Status: operatorv1alpha1.ClusterServiceVersionStatus{
-		Phase: operatorv1alpha1.CSVPhaseSucceeded,
+	Spec: operatorsv1alpha1.ClusterServiceVersionSpec{},
+	Status: operatorsv1alpha1.ClusterServiceVersionStatus{
+		Phase: operatorsv1alpha1.CSVPhaseSucceeded,
 	},
 }
 
-var csvMarketplace = operatorv1alpha1.ClusterServiceVersion{
+var csvMarketplace = operatorsv1alpha1.ClusterServiceVersion{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "csv-v0.0.0",
 		Namespace: "openshift-marketplace",
 	},
-	Spec: operatorv1alpha1.ClusterServiceVersionSpec{},
-	Status: operatorv1alpha1.ClusterServiceVersionStatus{
-		Phase: operatorv1alpha1.CSVPhaseSucceeded,
+	Spec: operatorsv1alpha1.ClusterServiceVersionSpec{},
+	Status: operatorsv1alpha1.ClusterServiceVersionStatus{
+		Phase: operatorsv1alpha1.CSVPhaseSucceeded,
 	},
 }
 
@@ -154,22 +155,22 @@ var secret = corev1.Secret{
 	StringData: map[string]string{".dockerconfigjson": "secretData"},
 }
 
-var sub = operatorv1alpha1.Subscription{
+var sub = operatorsv1alpha1.Subscription{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "testPackage",
 		Namespace: "testPackage",
 	},
-	Status: operatorv1alpha1.SubscriptionStatus{
+	Status: operatorsv1alpha1.SubscriptionStatus{
 		InstalledCSV: "csv-v0.0.0",
 	},
 }
 
-var og = operatorv1.OperatorGroup{
+var og = operatorsv1.OperatorGroup{
 	ObjectMeta: metav1.ObjectMeta{
 		Name:      "testPackage",
 		Namespace: "testPackage",
 	},
-	Status: operatorv1.OperatorGroupStatus{
+	Status: operatorsv1.OperatorGroupStatus{
 		LastUpdated: nil,
 	},
 }
diff --git a/certification/internal/policy/operator/related_images_test.go b/certification/internal/policy/operator/related_images_test.go
index 1967e3f..d78fb57 100644
--- a/certification/internal/policy/operator/related_images_test.go
+++ b/certification/internal/policy/operator/related_images_test.go
@@ -5,9 +5,10 @@ import (
 	"os"
 	"path/filepath"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 var _ = Describe("RelatedImages", func() {
diff --git a/certification/internal/policy/operator/scc_info_test.go b/certification/internal/policy/operator/scc_info_test.go
index b0929a4..fdca2d3 100644
--- a/certification/internal/policy/operator/scc_info_test.go
+++ b/certification/internal/policy/operator/scc_info_test.go
@@ -5,9 +5,10 @@ import (
 	"os"
 	"path/filepath"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 )
 
 var _ = Describe("securityContextConstraintsInCSV", func() {
diff --git a/certification/internal/policy/operator/scorecard_basic_check_spec_test.go b/certification/internal/policy/operator/scorecard_basic_check_spec_test.go
index 0d0532f..cf0ef4f 100644
--- a/certification/internal/policy/operator/scorecard_basic_check_spec_test.go
+++ b/certification/internal/policy/operator/scorecard_basic_check_spec_test.go
@@ -4,11 +4,12 @@ import (
 	"context"
 	"os"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 var _ = Describe("ScorecardBasicCheck", func() {
diff --git a/certification/internal/policy/operator/scorecard_olm_suite_test.go b/certification/internal/policy/operator/scorecard_olm_suite_test.go
index 9d559af..f9cb609 100644
--- a/certification/internal/policy/operator/scorecard_olm_suite_test.go
+++ b/certification/internal/policy/operator/scorecard_olm_suite_test.go
@@ -4,11 +4,12 @@ import (
 	"context"
 	"os"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 var _ = Describe("ScorecardBasicCheck", func() {
diff --git a/certification/internal/policy/operator/validate_operator_bundle_test.go b/certification/internal/policy/operator/validate_operator_bundle_test.go
index af8df6c..2ccaef8 100644
--- a/certification/internal/policy/operator/validate_operator_bundle_test.go
+++ b/certification/internal/policy/operator/validate_operator_bundle_test.go
@@ -5,10 +5,11 @@ import (
 	"os"
 	"path/filepath"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/internal/operatorsdk"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 var _ = Describe("BundleValidateCheck", func() {
diff --git a/certification/pyxis/builder_test.go b/certification/pyxis/builder_test.go
index e9d8f3d..63fea62 100644
--- a/certification/pyxis/builder_test.go
+++ b/certification/pyxis/builder_test.go
@@ -6,10 +6,11 @@ import (
 	"os"
 	"path"
 
-	. "github.com/onsi/ginkgo/v2/dsl/core"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/formatters"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/version"
+
+	. "github.com/onsi/ginkgo/v2/dsl/core"
+	. "github.com/onsi/gomega"
 )
 
 var _ = Describe("Pyxis Builder tests", func() {
@@ -82,7 +83,7 @@ var _ = Describe("Pyxis Builder tests", func() {
 					RawConfig:              "",
 					Repositories:           []Repository{},
 					SumLayerSizeBytes:      0,
-					UncompressedTopLayerId: "",
+					UncompressedTopLayerID: "",
 				}
 				bts, err := json.Marshal(certimg)
 				Expect(err).ToNot(HaveOccurred())
diff --git a/certification/pyxis/pyxis_suite_test.go b/certification/pyxis/pyxis_suite_test.go
index eb509ad..7b50771 100644
--- a/certification/pyxis/pyxis_suite_test.go
+++ b/certification/pyxis/pyxis_suite_test.go
@@ -79,7 +79,6 @@ func (p *pyxisProjectHandler) ServeHTTP(response http.ResponseWriter, request *h
 	default:
 		mustWrite(response, `{"_id":"deadb33f","certification_status":"Started","name":"My Spiffy Project","project_status":"Foo","type":"Containers","container":{"docker_config_json":"{}","type":"Containers"}}`)
 	}
-	return
 }
 
 func (p *pyxisImageHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
@@ -111,7 +110,6 @@ func (p *pyxisImageHandler) ServeHTTP(response http.ResponseWriter, request *htt
 	default:
 		mustWrite(response, fmt.Sprintf(`{"data":[%s]}`, responseString))
 	}
-	return
 }
 
 func (p *pyxisRPMManifestHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
@@ -133,7 +131,6 @@ func (p *pyxisRPMManifestHandler) ServeHTTP(response http.ResponseWriter, reques
 	default:
 		mustWrite(response, `{"_id":"blah"}`)
 	}
-	return
 }
 
 func (p *pyxisTestResultsHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
@@ -148,7 +145,6 @@ func (p *pyxisTestResultsHandler) ServeHTTP(response http.ResponseWriter, reques
 	default:
 		mustWrite(response, `{"image":"quay.io/awesome/image:latest","passed": true}`)
 	}
-	return
 }
 
 func (p *pyxisGraphqlLayerHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
@@ -179,7 +175,6 @@ func (p *pyxisGraphqlLayerHandler) ServeHTTP(response http.ResponseWriter, reque
 			}
 		}
 	}`)
-	return
 }
 
 func (p *pyxisGraphqlFindImagesHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
diff --git a/certification/pyxis/submit_test.go b/certification/pyxis/submit_test.go
index 65e8811..d16d67c 100644
--- a/certification/pyxis/submit_test.go
+++ b/certification/pyxis/submit_test.go
@@ -71,7 +71,7 @@ var _ = Describe("Pyxis Submit", func() {
 		})
 		Context("and a server error occurs", func() {
 			JustBeforeEach(func() {
-				pyxisClient.ApiToken = "my-error-project-api-token"
+				pyxisClient.APIToken = "my-error-project-api-token"
 			})
 			It("should handle the project update error", func() {
 				certResults, err := pyxisClient.SubmitResults(ctx, &certInput)
@@ -81,7 +81,7 @@ var _ = Describe("Pyxis Submit", func() {
 		})
 		Context("and the client sends a bad token", func() {
 			JustBeforeEach(func() {
-				pyxisClient.ApiToken = "my-bad-project-api-token"
+				pyxisClient.APIToken = "my-bad-project-api-token"
 			})
 			It("should get an unauthorized", func() {
 				certResults, err := pyxisClient.SubmitResults(ctx, &certInput)
@@ -103,7 +103,7 @@ var _ = Describe("Pyxis Submit", func() {
 
 	Context("when an index.docker.io project is submitted", func() {
 		BeforeEach(func() {
-			pyxisClient.ApiToken = "my-index-docker-io-project-api-token"
+			pyxisClient.APIToken = "my-index-docker-io-project-api-token"
 			certInput.CertImage.Repositories[0] = Repository{Registry: "index.docker.io", Repository: "my/repo"}
 		})
 		Context("and it is not already In Progress", func() {
@@ -121,8 +121,8 @@ var _ = Describe("Pyxis Submit", func() {
 	Context("Image", func() {
 		Context("createImage 409 Conflict", func() {
 			BeforeEach(func() {
-				pyxisClient.ApiToken = "my-image-409-api-token"
-				pyxisClient.ProjectId = "my-image-project-id"
+				pyxisClient.APIToken = "my-image-409-api-token"
+				pyxisClient.ProjectID = "my-image-project-id"
 			})
 			Context("when a project is submitted", func() {
 				Context("and the image already exists", func() {
@@ -140,8 +140,8 @@ var _ = Describe("Pyxis Submit", func() {
 
 		Context("createImage 401 Unauthorized", func() {
 			BeforeEach(func() {
-				pyxisClient.ApiToken = "my-bad-image-api-token"
-				pyxisClient.ProjectId = "my-image-project-id"
+				pyxisClient.APIToken = "my-bad-image-api-token"
+				pyxisClient.ProjectID = "my-image-project-id"
 			})
 			Context("when a project is submitted", func() {
 				Context("and the api token is invalid", func() {
@@ -156,8 +156,8 @@ var _ = Describe("Pyxis Submit", func() {
 
 		Context("createImage 409 Conflict and getImage 401 Unauthorized", func() {
 			BeforeEach(func() {
-				pyxisClient.ApiToken = "my-bad-401-image-api-token"
-				pyxisClient.ProjectId = "my-image-project-id"
+				pyxisClient.APIToken = "my-bad-401-image-api-token"
+				pyxisClient.ProjectID = "my-image-project-id"
 			})
 			Context("when a project is submitted", func() {
 				Context("and a bad token is sent to getImage and createImage is in conflict", func() {
@@ -172,8 +172,8 @@ var _ = Describe("Pyxis Submit", func() {
 
 		Context("createImage 500 InternalServerError", func() {
 			BeforeEach(func() {
-				pyxisClient.ApiToken = "my-bad-500-image-api-token"
-				pyxisClient.ProjectId = "my-image-project-id"
+				pyxisClient.APIToken = "my-bad-500-image-api-token"
+				pyxisClient.ProjectID = "my-image-project-id"
 			})
 			Context("when a project is submitted", func() {
 				Context("and an unknown error occurs", func() {
@@ -190,7 +190,7 @@ var _ = Describe("Pyxis Submit", func() {
 	Context("RPMManifest", func() {
 		Context("createRPMManifest 409 Conflict", func() {
 			BeforeEach(func() {
-				pyxisClient.ApiToken = "my-bad-rpmmanifest-409-api-token"
+				pyxisClient.APIToken = "my-bad-rpmmanifest-409-api-token"
 			})
 			Context("when a project is submitted", func() {
 				Context("and the RPM manifest already exists", func() {
@@ -208,7 +208,7 @@ var _ = Describe("Pyxis Submit", func() {
 
 		Context("createRPMManifest 401 Unauthorized", func() {
 			BeforeEach(func() {
-				pyxisClient.ApiToken = "my-bad-rpmmanifest-api-token"
+				pyxisClient.APIToken = "my-bad-rpmmanifest-api-token"
 			})
 			Context("when a project is submitted", func() {
 				Context("and a bad token is sent to createRPMManifest", func() {
@@ -223,7 +223,7 @@ var _ = Describe("Pyxis Submit", func() {
 
 		Context("createRPMManifest 409 Conflict and getRPMManifest 401 Unauthorized", func() {
 			BeforeEach(func() {
-				pyxisClient.ApiToken = "my-bad-rpmmanifest-401-api-token"
+				pyxisClient.APIToken = "my-bad-rpmmanifest-401-api-token"
 			})
 			Context("when a project is submitted", func() {
 				Context("and a bad token is sent to getRPMManifest and createRPMManifest is in conflict", func() {
@@ -239,8 +239,8 @@ var _ = Describe("Pyxis Submit", func() {
 
 	Context("createTestResults 401 Unauthorized", func() {
 		BeforeEach(func() {
-			pyxisClient.ApiToken = "my-bad-testresults-api-token"
-			pyxisClient.ProjectId = "my-awesome-project-id"
+			pyxisClient.APIToken = "my-bad-testresults-api-token"
+			pyxisClient.ProjectID = "my-awesome-project-id"
 		})
 		Context("when a project is submitted", func() {
 			Context("and a bad api token is sent to createTestResults", func() {
@@ -267,7 +267,7 @@ var _ = Describe("Pyxis Submit", func() {
 
 	Context("GetProject 401 Unauthorized", func() {
 		BeforeEach(func() {
-			pyxisClient.ApiToken = "my-401-project-api-token"
+			pyxisClient.APIToken = "my-401-project-api-token"
 		})
 		Context("when trying to retrieve a project", func() {
 			Context("and the API token is bad", func() {
diff --git a/certification/runtime/assets_test.go b/certification/runtime/assets_test.go
index 84e4bbe..f357b08 100644
--- a/certification/runtime/assets_test.go
+++ b/certification/runtime/assets_test.go
@@ -66,7 +66,7 @@ var _ = Describe("Scorecard Image tests", func() {
 				Expect(image).To(Equal(images["scorecard"]))
 			})
 		})
-		Context("the image is overriden", func() {
+		Context("the image is overidden", func() {
 			It("should return the passed param", func() {
 				image := ScorecardImage("quay.io/some/container:v1.0.0")
 				Expect(image).To(Equal("quay.io/some/container:v1.0.0"))
diff --git a/certification/runtime/config_test.go b/certification/runtime/config_test.go
index 2b64602..b07f631 100644
--- a/certification/runtime/config_test.go
+++ b/certification/runtime/config_test.go
@@ -60,16 +60,6 @@ var _ = Describe("Viper to Runtime Config", func() {
 		})
 	})
 
-	Context("With proper values, but with an opsid- prefix on the certification project ID", func() {
-		It("should properly trim the ospid- prefix and succeed", func() {
-			baseViperCfg.Set("certification_project_id", "ospid-111111111111")
-			expectedRuntimeCfg.CertificationProjectID = "111111111111"
-			cfg, err := NewConfigFrom(*baseViperCfg)
-			Expect(err).ToNot(HaveOccurred())
-			Expect(*cfg).To(BeEquivalentTo(*expectedRuntimeCfg))
-		})
-	})
-
 	It("should only have 20 struct keys for tests to be valid", func() {
 		// If this test fails, it means a developer has added or removed
 		// keys from runtime.Config, and so these tests may no longer be
diff --git a/certification/runtime/result_writer_test.go b/certification/runtime/result_writer_test.go
index 3510c2b..39d6cc2 100644
--- a/certification/runtime/result_writer_test.go
+++ b/certification/runtime/result_writer_test.go
@@ -35,8 +35,8 @@ var _ = Describe("Result Writers", func() {
 			It("should open, be writeable, and close successfully", func() {
 				p := path.Join(resultWriterTestDir, "foo.txt")
 				f, err := rw.OpenFile(p)
-				defer f.Close()
 				Expect(err).ToNot(HaveOccurred())
+				defer f.Close()
 				Expect(p).To(BeAnExistingFile())
 
 				toWrite := []byte("testing")
diff --git a/cmd/check_container_test.go b/cmd/check_container_test.go
index 3955a50..e72bcd5 100644
--- a/cmd/check_container_test.go
+++ b/cmd/check_container_test.go
@@ -8,8 +8,6 @@ import (
 	"path"
 	"path/filepath"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
@@ -17,9 +15,11 @@ import (
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/policy"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/pyxis"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
-	"github.com/spf13/viper"
 
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 	"github.com/sirupsen/logrus"
+	"github.com/spf13/viper"
 )
 
 var _ = Describe("Check Container Command", func() {
@@ -121,12 +121,14 @@ var _ = Describe("Check Container Command", func() {
 			})
 			Expect(err).ToNot(HaveOccurred())
 
-			// Create expected files.
-			artifacts.WriteFile(dockerconfigFilename, "dockerconfig")
-			artifacts.WriteFile(preflightLogFilename, "preflight log")
-			artifacts.WriteFile(certification.DefaultCertImageFilename, string(certImageJSONBytes))
-			artifacts.WriteFile(certification.DefaultTestResultsFilename, string(preflightTestResultsJSONBytes))
-			artifacts.WriteFile(certification.DefaultRPMManifestFilename, string(rpmManifestJSONBytes))
+			// Create expected files. Use of Gomega's Expect here (without a subsequent test) is intentional.
+			// Expect automatically checks that additional return values are nil, and thus will fail if they
+			// are not.
+			Expect(artifacts.WriteFile(dockerconfigFilename, "dockerconfig"))
+			Expect(artifacts.WriteFile(preflightLogFilename, "preflight log"))
+			Expect(artifacts.WriteFile(certification.DefaultCertImageFilename, string(certImageJSONBytes)))
+			Expect(artifacts.WriteFile(certification.DefaultTestResultsFilename, string(preflightTestResultsJSONBytes)))
+			Expect(artifacts.WriteFile(certification.DefaultRPMManifestFilename, string(rpmManifestJSONBytes)))
 		})
 
 		Context("and project cannot be obtained from the API", func() {
@@ -232,7 +234,7 @@ var _ = Describe("Check Container Command", func() {
 
 		Context("and one of the submission artifacts is malformed", func() {
 			BeforeEach(func() {
-				artifacts.WriteFile(certification.DefaultRPMManifestFilename, "malformed")
+				Expect(artifacts.WriteFile(certification.DefaultRPMManifestFilename, "malformed"))
 			})
 
 			It("should throw an error finalizing the submission", func() {
@@ -527,4 +529,45 @@ certification_project_id: mycertid`
 			})
 		})
 	})
+
+	Context("When validating the certification-project-id flag", func() {
+		Context("and the flag is set properly", func() {
+			BeforeEach(func() {
+				viper.Set("certification_project_id", "123456789")
+			})
+			It("should not change the flag value", func() {
+				err := validateCertificationProjectId(checkContainerCmd(), []string{"foo"})
+				Expect(err).ToNot(HaveOccurred())
+				Expect(viper.GetString("certification_project_id")).To(Equal("123456789"))
+			})
+		})
+		Context("and a valid ospid format is provided", func() {
+			BeforeEach(func() {
+				viper.Set("certification_project_id", "ospid-123456789")
+			})
+			It("should strip ospid- from the flag value", func() {
+				err := validateCertificationProjectId(checkContainerCmd(), []string{"foo"})
+				Expect(err).ToNot(HaveOccurred())
+				Expect(viper.GetString("certification_project_id")).To(Equal("123456789"))
+			})
+		})
+		Context("and a legacy format with ospid is provided", func() {
+			BeforeEach(func() {
+				viper.Set("certification_project_id", "ospid-62423-f26c346-6cc1dc7fae92")
+			})
+			It("should throw an error", func() {
+				err := validateCertificationProjectId(checkContainerCmd(), []string{"foo"})
+				Expect(err).To(HaveOccurred())
+			})
+		})
+		Context("and a legacy format without ospid is provided", func() {
+			BeforeEach(func() {
+				viper.Set("certification_project_id", "62423-f26c346-6cc1dc7fae92")
+			})
+			It("should throw an error", func() {
+				err := validateCertificationProjectId(checkContainerCmd(), []string{"foo"})
+				Expect(err).To(HaveOccurred())
+			})
+		})
+	})
 })
diff --git a/cmd/check_operator_test.go b/cmd/check_operator_test.go
index f919f2e..a4844d7 100644
--- a/cmd/check_operator_test.go
+++ b/cmd/check_operator_test.go
@@ -4,12 +4,13 @@ import (
 	"context"
 	"os"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/formatters"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/policy"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 	"github.com/spf13/viper"
 )
 
diff --git a/cmd/check_test.go b/cmd/check_test.go
index 8bae183..3422ff0 100644
--- a/cmd/check_test.go
+++ b/cmd/check_test.go
@@ -5,10 +5,11 @@ import (
 	"os"
 	"path/filepath"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 	"github.com/spf13/viper"
 )
 
@@ -31,8 +32,8 @@ var _ = Describe("cmd package check command", func() {
 
 	Describe("Test Connect URL builders", func() {
 		var (
-			projectId string = "this-is-my-project-id"
-			imageId   string = "my-image-id"
+			projectID = "this-is-my-project-id"
+			imageID   = "my-image-id"
 		)
 		BeforeEach(func() {
 			viper.SetEnvPrefix("pflt")
@@ -45,7 +46,7 @@ var _ = Describe("cmd package check command", func() {
 		Context("Regular Connect URL", func() {
 			It("should return a URL with just a project ID", func() {
 				expected := "https://connect.redhat.com/projects/this-is-my-project-id"
-				actual := buildConnectURL(projectId)
+				actual := buildConnectURL(projectID)
 				Expect(expected).To(Equal(actual))
 			})
 		})
@@ -55,7 +56,7 @@ var _ = Describe("cmd package check command", func() {
 			})
 			It("should return a URL for QA", func() {
 				expected := "https://connect.qa.redhat.com/projects/this-is-my-project-id"
-				actual := buildConnectURL(projectId)
+				actual := buildConnectURL(projectID)
 				Expect(expected).To(Equal(actual))
 			})
 		})
@@ -65,7 +66,7 @@ var _ = Describe("cmd package check command", func() {
 			})
 			It("should return a URL for UAT", func() {
 				expected := "https://connect.uat.redhat.com/projects/this-is-my-project-id/images/my-image-id/scan-results"
-				actual := buildScanResultsURL(projectId, imageId)
+				actual := buildScanResultsURL(projectID, imageID)
 				Expect(expected).To(Equal(actual))
 			})
 		})
@@ -75,7 +76,7 @@ var _ = Describe("cmd package check command", func() {
 			})
 			It("should return a URL for QA", func() {
 				expected := "https://connect.qa.redhat.com/projects/this-is-my-project-id/overview"
-				actual := buildOverviewURL(projectId)
+				actual := buildOverviewURL(projectID)
 				Expect(expected).To(Equal(actual))
 			})
 		})
@@ -85,12 +86,12 @@ var _ = Describe("cmd package check command", func() {
 			})
 			It("should return a Prod overview URL", func() {
 				expected := "https://connect.redhat.com/projects/this-is-my-project-id/overview"
-				actual := buildOverviewURL(projectId)
+				actual := buildOverviewURL(projectID)
 				Expect(expected).To(Equal(actual))
 			})
 			It("should return a Prod scan URL", func() {
 				expected := "https://connect.redhat.com/projects/this-is-my-project-id/images/my-image-id/scan-results"
-				actual := buildScanResultsURL(projectId, imageId)
+				actual := buildScanResultsURL(projectID, imageID)
 				Expect(expected).To(Equal(actual))
 			})
 		})
diff --git a/cmd/fakes_test.go b/cmd/fakes_test.go
index f92f4d9..af36864 100644
--- a/cmd/fakes_test.go
+++ b/cmd/fakes_test.go
@@ -101,7 +101,7 @@ func gpFuncReturnError(ctx context.Context) (*pyxis.CertProject, error) {
 func gpFuncReturnScratchException(ctx context.Context) (*pyxis.CertProject, error) {
 	return &pyxis.CertProject{
 		Container: pyxis.Container{
-			OsContentType: "scratch",
+			Type: "scratch",
 		},
 	}, nil
 }
@@ -158,7 +158,7 @@ type fakeCheckEngine struct {
 func (e fakeCheckEngine) generateCheck() certification.Check {
 	generatedName := fmt.Sprintf("test-rand-%d", rand.Int())
 
-	var doNothing certification.ValidatorFunc = func(c context.Context, i certification.ImageReference) (bool, error) {
+	doNothing := func(c context.Context, i certification.ImageReference) (bool, error) {
 		return true, nil
 	}
 
diff --git a/cmd/list_checks_test.go b/cmd/list_checks_test.go
index 47aec2d..2a16460 100644
--- a/cmd/list_checks_test.go
+++ b/cmd/list_checks_test.go
@@ -4,9 +4,10 @@ import (
 	"context"
 	"strings"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
 )
 
 var _ = Describe("list checks subcommand", func() {
diff --git a/cmd/preflight_check_test.go b/cmd/preflight_check_test.go
index 2ddcce3..8597db1 100644
--- a/cmd/preflight_check_test.go
+++ b/cmd/preflight_check_test.go
@@ -5,12 +5,13 @@ import (
 	"os"
 	"path"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/formatters"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 var _ = Describe("Preflight Check Func", func() {
@@ -122,7 +123,7 @@ var _ = Describe("Preflight Check Func", func() {
 			})
 		})
 
-		Context("and submission encounteres an error", func() {
+		Context("and submission encounters an error", func() {
 			var msg string
 			BeforeEach(func() {
 				msg = "some error submitting"
diff --git a/cmd/root_test.go b/cmd/root_test.go
index 6eab617..06f2e4d 100644
--- a/cmd/root_test.go
+++ b/cmd/root_test.go
@@ -6,9 +6,10 @@ import (
 	"os"
 	"path/filepath"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/spf13/cobra"
 	"github.com/spf13/viper"
 )
diff --git a/cmd/runtime_assets_test.go b/cmd/runtime_assets_test.go
index dcf148f..4d96654 100644
--- a/cmd/runtime_assets_test.go
+++ b/cmd/runtime_assets_test.go
@@ -5,9 +5,10 @@ import (
 	"context"
 	"encoding/json"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
 )
 
 var _ = Describe("runtime-assets test", func() {
@@ -39,7 +40,7 @@ var _ = Describe("runtime-assets test", func() {
 			Expect(err).ToNot(HaveOccurred())
 
 			var printed runtime.AssetData
-			json.Unmarshal(buf.Bytes(), &printed)
+			Expect(json.Unmarshal(buf.Bytes(), &printed)).To(Succeed())
 
 			actual := runtime.Assets(context.TODO())
 
@@ -54,7 +55,7 @@ var _ = Describe("runtime-assets test", func() {
 			Expect(err).ToNot(HaveOccurred())
 
 			var printed runtime.AssetData
-			json.Unmarshal([]byte(out), &printed)
+			Expect(json.Unmarshal([]byte(out), &printed)).To(Succeed())
 
 			actual := runtime.Assets(context.TODO())
 
diff --git a/cmd/suite_test.go b/cmd/suite_test.go
index dcf4ae7..25d9083 100644
--- a/cmd/suite_test.go
+++ b/cmd/suite_test.go
@@ -5,9 +5,10 @@ import (
 	"path/filepath"
 	"testing"
 
+	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
+
 	. "github.com/onsi/ginkgo/v2"
 	. "github.com/onsi/gomega"
-	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 )
 
 func TestCMD(t *testing.T) {
diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go
index aba216f..b75732b 100644
--- a/test/e2e/e2e_test.go
+++ b/test/e2e/e2e_test.go
@@ -4,12 +4,13 @@ import (
 	"context"
 	"os"
 
-	. "github.com/onsi/ginkgo/v2"
-	. "github.com/onsi/gomega"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/artifacts"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/engine"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/policy"
 	"github.com/redhat-openshift-ecosystem/openshift-preflight/certification/runtime"
+
+	. "github.com/onsi/ginkgo/v2"
+	. "github.com/onsi/gomega"
 )
 
 // These tests confirm that all container and operator policies properly pass
@@ -43,7 +44,7 @@ var _ = Describe("policy validation", func() {
 			Expect(err).ToNot(HaveOccurred())
 
 			ctx := context.TODO()
-			e.ExecuteChecks(ctx)
+			Expect(e.ExecuteChecks(ctx)).To(Succeed())
 			results := e.Results(ctx)
 
 			It("should pass all checks", func() {
@@ -61,7 +62,7 @@ var _ = Describe("policy validation", func() {
 			Expect(err).To(BeNil())
 
 			ctx := context.TODO()
-			e.ExecuteChecks(ctx)
+			Expect(e.ExecuteChecks(ctx)).To(Succeed())
 			results := e.Results(ctx)
 
 			// TODO: Replace this check so that you test for individual check failures
@@ -89,7 +90,7 @@ var _ = Describe("policy validation", func() {
 			Expect(err).ToNot(HaveOccurred())
 
 			ctx := context.TODO()
-			e.ExecuteChecks(ctx)
+			Expect(e.ExecuteChecks(ctx)).To(Succeed())
 			results := e.Results(ctx)
 
 			It("should pass all checks", func() {
@@ -112,7 +113,7 @@ var _ = Describe("policy validation", func() {
 			Expect(err).ToNot(HaveOccurred())
 
 			ctx := context.TODO()
-			e.ExecuteChecks(ctx)
+			Expect(e.ExecuteChecks(ctx)).To(Succeed())
 			results := e.Results(ctx)
 
 			// TODO: Replace this check so that you test for individual check failures