diff --git a/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml b/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml
index 60c3f7344..4126b1012 100644
--- a/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml
+++ b/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml
@@ -169,3 +169,6 @@ spec:
     controlplane:
       name: kubeadm-clusterConfiguration
       repository: k8s.gcr.io
+    kube-webhook-certgen:
+      name: kube-webhook-certgen
+      repository: quay.io/airshipit/kube-webhook-certgen
diff --git a/manifests/type/gating/target/workload/ingress/helmrelease.yaml b/manifests/type/gating/target/workload/ingress/helmrelease.yaml
index 0905feff2..b56989a3c 100644
--- a/manifests/type/gating/target/workload/ingress/helmrelease.yaml
+++ b/manifests/type/gating/target/workload/ingress/helmrelease.yaml
@@ -15,6 +15,10 @@ spec:
     defaultBackend:
       enabled: true
     controller:
+      admissionWebhooks:
+        patch:
+          image:
+            repository: quay.io/airshipit/kube-webhook-certgen
       service:
         type: NodePort
         nodePorts:
diff --git a/manifests/type/gating/target/workload/ingress/replacements/versions.yaml b/manifests/type/gating/target/workload/ingress/replacements/versions.yaml
index c0c85a871..544881b15 100644
--- a/manifests/type/gating/target/workload/ingress/replacements/versions.yaml
+++ b/manifests/type/gating/target/workload/ingress/replacements/versions.yaml
@@ -37,3 +37,13 @@ replacements:
       kind: HelmRelease
       name: ingress
     fieldrefs: ["spec.chart.spec.version"]
+- source:
+    objref:
+      kind: VersionsCatalogue
+      name: versions-airshipctl
+    fieldref: spec.image_repositories.kube-webhook-certgen.repository
+  target:
+    objref:
+      kind: HelmRelease
+      name: ingress
+    fieldrefs: ["spec.values.controller.admissionWebhooks.patch.image.repository"]
diff --git a/pkg/api/v1alpha1/versionscatalogue_types.go b/pkg/api/v1alpha1/versionscatalogue_types.go
index a0a5beedb..901f4e168 100644
--- a/pkg/api/v1alpha1/versionscatalogue_types.go
+++ b/pkg/api/v1alpha1/versionscatalogue_types.go
@@ -165,7 +165,7 @@ type VersionsCatalogueSpec struct {
 	Kubernetes string `json:"kubernetes,omitempty"`
 
 	// Allows for the specification of the image repositories
-	ImageRepositories map[string]ImageRepositorySpec `json:"image_repositories,omitempty"`
+	ImageRepositories AirshipctlFunctionImageComponentMap `json:"image_repositories,omitempty"`
 }
 
 // +kubebuilder:object:root=true
diff --git a/pkg/api/v1alpha1/zz_generated.deepcopy.go b/pkg/api/v1alpha1/zz_generated.deepcopy.go
index 0998e59e9..88b389d6c 100644
--- a/pkg/api/v1alpha1/zz_generated.deepcopy.go
+++ b/pkg/api/v1alpha1/zz_generated.deepcopy.go
@@ -1893,7 +1893,7 @@ func (in *VersionsCatalogueSpec) DeepCopyInto(out *VersionsCatalogueSpec) {
 	}
 	if in.ImageRepositories != nil {
 		in, out := &in.ImageRepositories, &out.ImageRepositories
-		*out = make(map[string]ImageRepositorySpec, len(*in))
+		*out = make(AirshipctlFunctionImageComponentMap, len(*in))
 		for key, val := range *in {
 			(*out)[key] = val
 		}