]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
doc/dev/release-process.rst: New container build/release process 60973/head
authorDan Mick <dan.mick@redhat.com>
Wed, 4 Dec 2024 01:15:41 +0000 (17:15 -0800)
committerZac Dover <zac.dover@proton.me>
Fri, 6 Dec 2024 04:09:25 +0000 (05:09 +0100)
Signed-off-by: Dan Mick <dan.mick@redhat.com>
(cherry picked from commit 178036924e7d1ec8eb62663f00f82d0b092c7ca1)

doc/dev/release-process.rst

index 68a82d5acc746b47501f5a30e885969d43487d82..447ff8e25cc357c7e02dcbb8d944b08495dd6efa 100644 (file)
@@ -125,7 +125,9 @@ See `the Ceph Tracker wiki page that explains how to write the release notes <ht
 
 #. Obtain the sha1 of the version commit from the `build job <https://jenkins.ceph.com/view/all/job/ceph>`_ or the ``sha1`` file created by the `ceph-setup <https://jenkins.ceph.com/job/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 <https://wiki.sepia.ceph.com/doku.php?id=services:longrunningcluster>`_ 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 <https://wiki.sepia.ceph.com/doku.php?id=services:longrunningcluster>`_ 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 <ht
 
       sync-push ceph octopus
 
-This leaves the packages in a password-protected prerelease area
-at https://download.ceph.com/prerelease/ceph.  Verify them from there.
-When done and ready for release, mv the directories to the release
-directory (that is, "mv <whatever you're promoting> ../..".
+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 <ceph-checkout>/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 <ceph-checkout>/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
 =======================