From: Dan Mick Date: Wed, 4 Dec 2024 01:15:41 +0000 (-0800) Subject: doc/dev/release-process.rst: New container build/release process X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7e51329ecbf8425fa88a29f80ee635fb0cf6ee3e;p=ceph.git doc/dev/release-process.rst: New container build/release process Signed-off-by: Dan Mick (cherry picked from commit 178036924e7d1ec8eb62663f00f82d0b092c7ca1) --- diff --git a/doc/dev/release-process.rst b/doc/dev/release-process.rst index 68a82d5acc746..447ff8e25cc35 100644 --- a/doc/dev/release-process.rst +++ b/doc/dev/release-process.rst @@ -125,7 +125,9 @@ See `the Ceph Tracker wiki page that explains how to write the release notes `_ or the ``sha1`` file created by the `ceph-setup `_ job. -#. Download the packages from chacra.ceph.com to the signing virtual machine. These packages get downloaded to ``/opt/repos`` where the `Sepia Lab Long Running (Ceph) Cluster `_ is mounted. +#. Download the packages from chacra.ceph.com to the signing virtual machine. These packages get downloaded to ``/opt/repos`` where the `Sepia Lab Long Running (Ceph) Cluster `_ is mounted. Note: this step will also run a command to transfer the +source tarballs from chacra.ceph.com to download.ceph.com directly, by +ssh'ing to download.ceph.com and running /home/signer/bin/get-tarballs.sh. .. prompt:: bash $ @@ -199,19 +201,62 @@ See `the Ceph Tracker wiki page that explains how to write the release notes ../..". +This leaves the packages, and the tarball, in a password-protected +prerelease area at https://download.ceph.com/prerelease/ceph. Verify them +from there. When done and ready for release, log into download.ceph.com and +mv the directories and the tarballs from the prerelease home +(/data/download.ceph.com/www/prerelease/ceph) to the release directory +(/data/download.ceph.com/www). 5. Build Containers =================== -Start the following two jobs: +Architecture-specific containers are built during the ceph build and +pushed to quay.ceph.io/ceph/prerelease-{amd64,arm64}, containing the +packages built in that ceph build. The prerelease 'fat' container, +or manifest-list container, that refers to both arch-specific containers, +is built by hand using the command "make-manifest-list.py" in +ceph.git:src/container/make-manifest-list.py. Note that you must +be logged into the appropriate container repos for any of these +manipulations: quay.ceph.io for fetching prerelease arch-specific +containers and pushing the prerelease manifest-list container, and +quay.io for promoting the prerelease containers to released containers. -#. https://2.jenkins.ceph.com/job/ceph-container-build-ceph-base-push-imgs/ -#. https://2.jenkins.ceph.com/job/ceph-container-build-ceph-base-push-imgs-arm64/ + .. prompt:: bash + + cd /src/container + ./make-manifest-list.py + +Reasonable defaults are set for all inputs, but environment variables +can be used to override: + + * ARCH_SPECIFIC_HOST (default 'quay.ceph.io'): host of prerelease repos + * AMD64_REPO (default 'ceph/prerelease-amd64') prerelease amd64 repo + * ARM64_REPO (default 'ceph/prerelease-arm64') prerelease arm64 repo + +(prerelease arch-specific containers will be copied from here) + + * MANIFEST_HOST (default 'quay.ceph.io') prerelease manifest-list host + * MANIFEST_REPO (default 'ceph/prerelease') prerelease manifest-list repo + +(prerelease manifest-list containers will be placed here) + +Finally, when all appropriate testing/ verification is done on the +container images, you can use make-manifest-list.py to promote them to +their final release location on quay.io/ceph/ceph: + + .. prompt:: bash + + cd /src/container + ./make-manifest-list.py --promote + +Two more environment variables can override the default destination for +promotion (the source of the prerelease container to be promoted is +as above, in MANIFEST_HOST/REPO): + + * RELEASE_MANIFEST_HOST (default 'quay.io') release host + * RELEASE_MANIFEST_REPO (default 'ceph/ceph') release repo 6. Announce the Release =======================