diff --git a/chart/templates/statefulset.yaml b/chart/templates/statefulset.yaml
index c8066fbf86222b7fa7854b19fd09d9e672e8f5b4..e0a24812565599d3dbd61feea70308aa29f21e0b 100644
--- a/chart/templates/statefulset.yaml
+++ b/chart/templates/statefulset.yaml
@@ -39,8 +39,9 @@ spec:
             {{- toYaml .Values.api.extraEnvVars | nindent 12 }}
           securityContext:
             {{- toYaml .Values.securityContext | nindent 12 }}
-          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          {{- $image_compat := .Values.image | default (dict "repository" "") }}
+          image: "{{ $image_compat.repository | default .Values.api.image.repository }}:{{ $image_compat.tag | default  .Values.api.image.tag | default .Chart.AppVersion }}"
+          imagePullPolicy: {{ .Values.api.image.pullPolicy }}
           args:
             - -config=/aptly/config/aptly.conf
             {{- if .Values.api.extraArgs }}
@@ -76,8 +77,8 @@ spec:
         - name: {{ .Chart.Name }}-publish
           securityContext:
             {{- toYaml .Values.securityContext | nindent 12 }}
-          image: docker.io/library/httpd:2.4
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: "{{ .Values.publish.image.repository }}:{{ .Values.publish.image.tag }}"
+          imagePullPolicy: {{ .Values.publish.image.pullPolicy }}
           ports:
             - name: http
               containerPort: 80
diff --git a/chart/values.yaml b/chart/values.yaml
index 5ed215ddb02f6aa7afc32783e1f84fd8160a87e1..f0418d512e1cc5d0908fe52c0e5ce964d3443feb 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -4,13 +4,11 @@
 
 replicaCount: 1
 
-# TODO: put 'image' in container-specific sections, for consistency
-image:
-  repository: registry.gitlab.collabora.com/obs/aptly
-  pullPolicy: IfNotPresent
-  tag: main
-
 api:
+  image:
+    repository: registry.gitlab.collabora.com/obs/aptly
+    pullPolicy: IfNotPresent
+    tag: main
   resources: {}
   # Go runtime configuration variables can be set here, e.g.:
   # extraEnvVars:
@@ -25,6 +23,10 @@ api:
   #  - -no-lock
 
 publish:
+  image:
+    repository: docker.io/library/httpd
+    pullPolicy: IfNotPresent
+    tag: 2.4
   config:
     before_modules: ''
     after_modules: ''