@@ -247,20 +247,62 @@ impl ToDiskOpts {
247247 tty=--tty
248248 fi
249249
250+ # Workaround for issue #126: Override container policy to allow signature changes.
251+ # Some images (e.g., RHEL) have strict signature policies that prevent bootc install
252+ # from changing layer representation. We override /etc/containers/policy.json with
253+ # a permissive policy that allows all operations.
254+ export STORAGE_OPTS=additionalimagestore=${AIS}
255+ SOURCE_REF={SOURCE_IMGREF}
256+
257+ # Create permissive policy.json to override container's policy
258+ POLICY_FILE=/tmp/bcvk-policy.json
259+ cat > "${POLICY_FILE}" <<'EOF'
260+ {
261+ "default": [
262+ {
263+ "type": "insecureAcceptAnything"
264+ }
265+ ],
266+ "transports": {
267+ "containers-storage": [
268+ {
269+ "type": "insecureAcceptAnything"
270+ }
271+ ],
272+ "docker": {
273+ "": [
274+ {
275+ "type": "insecureAcceptAnything"
276+ }
277+ ]
278+ },
279+ "docker-daemon": {
280+ "": [
281+ {
282+ "type": "insecureAcceptAnything"
283+ }
284+ ]
285+ }
286+ }
287+ }
288+ EOF
289+
250290 # Execute bootc installation, having the outer podman pull from
251291 # the virtiofs store on the host, as well as the inner bootc.
252292 # Mount /var/tmp into inner container to avoid cross-device link errors (issue #125)
253- export STORAGE_OPTS=additionalimagestore=${AIS}
293+ # Override /etc/containers/policy.json with permissive policy to allow signature changes
254294 podman run --rm -i ${tty} --privileged --pid=host --net=none -v /sys:/sys:ro \
255- -v /var/lib/containers:/var/lib/containers -v /var/tmp:/var/tmp -v /dev:/dev -v ${AIS}:${AIS} --security-opt label=type:unconfined_t \
256- --env=STORAGE_OPTS \
257- {INSTALL_LOG} \
258- {SOURCE_IMGREF} \
259- bootc install to-disk \
260- --generic-image \
261- --skip-fetch-check \
262- {BOOTC_ARGS} \
263- /dev/disk/by-id/virtio-output
295+ -v /var/lib/containers:/var/lib/containers -v /var/tmp:/var/tmp -v /dev:/dev -v ${AIS}:${AIS} \
296+ -v "${POLICY_FILE}:/etc/containers/policy.json:ro" \
297+ --security-opt label=type:unconfined_t \
298+ --env=STORAGE_OPTS \
299+ {INSTALL_LOG} \
300+ ${SOURCE_REF} \
301+ bootc install to-disk \
302+ --generic-image \
303+ --skip-fetch-check \
304+ {BOOTC_ARGS} \
305+ /dev/disk/by-id/virtio-output
264306
265307 echo "Installation completed successfully!"
266308 "# }
0 commit comments