@@ -228,86 +228,31 @@ the container, release builds do not, because the build does not
228228sign the packages. Thus, release builds do not build the containers.
229229This must be done after :ref: `Signing and Publishing the Build `.
230230
231- Architecture-specific containers are built first, and pushed to
232- quay.ceph.io/ceph/prerelease-{amd64,arm64}. Note: this must be done on
233- both architectures.
234-
235- #. Use a host with a relatively-recent version of podman and skopeo available.
236- CentOS/RHEL/Fedora usually have later versions than Ubuntu, but Ubuntu 22.04
237- or later are probably ok.
238-
239- #. Copy and run this shell wrapper for building a container (in container/ is
240- assumed below, to invoke ``./build.sh ``), replacing the values in ``<> `` as
241- appropriate:
242-
243- .. code-block :: bash
244-
245- #! /bin/bash
246- set -xa
247-
248- CI_CONTAINER=false
249- VERSION=19.2.1
250- FLAVOR=default
251- BRANCH=squid
252- ARCH=x86_64
253- CEPH_SHA1=58a7fab8be0a062d730ad7da874972fd3fba59fb
254- CONTAINER_REPO_HOSTNAME=quay.ceph.io
255- CONTAINER_REPO_ORGANIZATION=ceph
256- CONTAINER_REPO_USERNAME=< quay.ceph.io username>
257- CONTAINER_REPO_PASSWORD=< password for above>
258- PRERELEASE_USERNAME=< download.ceph.com prerelease username>
259- PRERELEASE_PASSWORD=< password for above>
260- unset NO_PUSH
261- ./build.sh | tee build.sh.log
262-
263- #. Verify that the container images exist on
264- ``quay.ceph.io/ceph/prerelease-amd64 `` and
265- ``quay.ceph.io/ceph/prerelease-arm64 ``.
266-
267- #. The prerelease manifest-list container, which refers to both arch-specific
268- containers, is built by using the command ``make-manifest-list.py `` in
269- ``ceph.git:src/container/make-manifest-list.py ``. Note that you must be
270- logged into the appropriate container repos for any of these manipulations:
271- ``quay.ceph.io `` for fetching prerelease arch-specific containers and
272- pushing the prerelease manifest-list container, and ``quay.io `` for
273- promoting the prerelease containers to released containers.
231+ A Jenkins job named ceph-release-containers exists so that we can
232+ test the images before release. The job exists both for convenience and
233+ because it requires access to both x86_64 and arm64 builders. Start the
234+ job manually on the Jenkins server. This job:
274235
275- .. prompt :: bash
276-
277- cd <ceph-checkout>/container
278- ./make-manifest-list.py
279-
280- Reasonable defaults are set for all inputs, but environment variables can be
281- used to override the following:
282-
283- * ``ARCH_SPECIFIC_HOST `` (default 'quay.ceph.io'): host of prerelease repos
284- * ``AMD64_REPO `` (default 'ceph/prerelease-amd64') prerelease amd64 repo
285- * ``ARM64_REPO `` (default 'ceph/prerelease-arm64') prerelease arm64 repo
236+ * builds the architecture-specific container imagess and pushes them to
237+ quay.ceph.io/ceph/prerelease-amd64 and
238+ quay.ceph.io/ceph/prerelease-arm64
286239
287- (prerelease arch-specific containers will be copied from here)
240+ * fuses the architecture-specific images together into a 'manifest-list'
241+ or 'fat' container image and pushes it to quay.ceph.io/ceph/prerelease
288242
289- * ``MANIFEST_HOST `` (default 'quay.ceph.io') prerelease manifest-list host
290- * ``MANIFEST_REPO `` (default 'ceph/prerelease') prerelease manifest-list
291- repo
292-
293- (prerelease manifest-list containers will be placed here)
294-
295- #. Finally, when all appropriate testing and verification is done on the
296- container images, you can use ``make-manifest-list.py `` to promote them to
297- their final release location on ``quay.io/ceph/ceph `` (again, be sure you're
298- logged into ``quay.io/ceph `` with appropriate permissions):
243+ Finally, when all appropriate testing and verification is done on the
244+ container images, run ``make-manifest-list.py --promote `` from the ceph
245+ source tree (at ``container/make-manifest-list.py ``) to promote them to
246+ their final release location on ``quay.io/ceph/ceph `` (you must ensure
247+ you're logged into ``quay.io/ceph `` with appropriate permissions):
299248
300249 .. prompt :: bash
301250
302251 cd <ceph-checkout>/src/container
303252 ./make-manifest-list.py --promote
304253
305- Two more environment variables can override the default destination for
306- promotion (the source of the prerelease container to be promoted is as
307- above, in ``MANIFEST_HOST/REPO ``):
308-
309- * ``RELEASE_MANIFEST_HOST `` (default 'quay.io') release host
310- * ``RELEASE_MANIFEST_REPO `` (default 'ceph/ceph') release repo
254+ The --promote step should only be performed as the final step in releasing
255+ containers, when the container images have been tested to be good.
311256
312257
3132586. Announce the Release
0 commit comments