注意
本文档适用于 Ceph 开发版本。
发布检查清单
开发启动会
在开始一个新的主要版本时,应该在之前的版本(vX.2.0)被标记后立即采取这些步骤,并且该标记已经合并回主分支。
X 是我们刚刚开始开发的版本。X-1 是刚刚发布的版本(X-1)。2.0。
定义发布名称和常量
确保 X(理想情况下,X+1)被定义:
[x] src/common/ceph_releases.h (ceph_release_t)
[x] src/common/ceph_strings.cc (ceph_release_name())
[x] src/include/rados.h (CEPH_RELEASE_*和MAX)
[x] src/include/rbd/librbd.h (LIBRBD_VER_MINOR到 X)
[x] src/mon/mon_types.h (ceph::features::mon::FEATURE_*以及相关的结构和辅助函数)
[x] src/mds/cephfs_features.h (CEPHFS_CURRENT_RELEASE)
脚本
[x] src/script/backport-resolve-issue (releases(), ver_to_release())
[x] src/script/backport-create-issue (releases())
[x] src/script/ceph-release-notes (到 X)
Misc
[x] 更新 src/ceph-volume/ceph_volume/__init__.py (__release__)
[x] 更新 src/cephadm/cephadmlib/constants.py (DEFAULT_IMAGE_RELEASE和LATEST_STABLE_RELEASE到 X)
功能位
[x] 确保SERVER_X被定义
[x] 更改发布 X-3 中的任何功能DEPRECATED现在被标记为RETIRED.
[ ] 查找功能,这些功能(1)在 X-2 中存在,并且(2)没有客户端依赖,并将它们标记为DEPRECATED从 X 开始。
兼容集
[x] mon/Monitor.h (CEPH_MON_FEATURE_INCOMPAT_X)
[x] mon/Monitor.cc(包括在get_supported_features())
[x] mon/Monitor.cc (apply_monmap_to_compatset_features())
[x] mon/Monitor.cc (calc_quorum_requirements())
[x] test/cli/monmaptool/feature-set-unset-list.t (支持, 持久)
Mon
[x] src/tools/monmaptool.cc: 将 min_mon_release 提高到 X,用于创建(新的)集群
[x] src/test/cli/monmaptool/8.t: 更新 monmaptool 的输出到 X
[x] qa/standalone/mon/misc 调整TEST_mon_features(添加 X 案例并调整--mon-debug-no-require-X)
[x] qa/standalone/mon/misc 提高jqfilter=’.monmap.features.persistent | length == N’toN+1
[x] mon/MgrMonitor.cc 调整always_on_modules
[x] common/options/global.yaml.in 定义mon_debug_no_require_X
[x] common/options/global.yaml.in 移除mon_debug_no_require_X-2
[x] mon/OSDMonitor.cccreate_initial: 调整新的require_osd_release,并添加相关的mon_debug_no_require_X
[x] mon/OSDMonitor.ccpreprocess_boot: 调整“禁止启动”条件以禁止 X 如果require_osd_release< X-2。
[x] mon/OSDMonitor.cc: 调整“osd require-osd-release”以(1)允许设置 X,以及(2)检查所有 mon和OSDs 是否有 X
[x] mon/MonCommands.h: 调整“osd require-osd-release”允许选项包含 X
[x] qa/workunits/cephtool/test.sh: 调整require-osd-release测试
OSDMap
[x] src/osd/OSDMap.cc 添加发布名称映射到SERVER_X in pending_require_osd_release()
[x] OSDMap::get_min_compat_client: 核心团队评估
代码清理
[ ] 搜索代码中的“after X-1”或“X”用于条件检查
[ ] 搜索代码中的 X-2 和 X-3 (CEPH_FEATURE_SERVER_*和ceph_release_t::*)
[ ] 搜索代码中的require_osd_release
[ ] 搜索代码中的min_mon_release
[ ] 检查 include/denc.h 如果 DENC_START 宏仍然需要引用 squid
测试套件
[x] 创建 qa/workunits/test_telemetry_(X-1).sh
[x] 创建 qa/workunits/test_telemetry_(X-1)_x.sh
[x] 创建 qa/suites/upgrade/(X-1)-x
[x] 移除 qa/suites/upgrade/(X-3)-x-*
[x] 更新 qa/fs/upgrade/ 以移除(X-3)并添加(X-1);与文件系统团队确认/帮助
[x] 更新 qa/ 升级套件 require-osd-release 调用至 tentacle
[x] 创建 qa/releases/X.yaml
[x] 创建 qa/suites/rados/thrash-old-clients/1-install/(X-1).yaml
ceph构建
在ceph/ceph-build.git仓库:
[x] 添加版本到 X 的映射 (release_from_version() in scripts/build_utils.sh)
[x] 添加 X 的选项 (case $RELEASE_BRANCH in ceph-dev-build/build/build_osc)
[x] 添加 X 的选项 (case $RELEASE_BRANCH in ceph-dev-build/build/setup_osc)
[x] 搜索上一个发布并添加相关的构建目标(例如 reefhttps://github.com/ceph/ceph-build/pull/2076和https://github.com/ceph/ceph-build/pull/2119和https://github.com/ceph/ceph-build/pull/2315)
开发冻结后
[ ] 创建新发布的分支
[ ] 在上创建 vX.3.0 注释标签
main
以确保从新发布到主分支的升级不会被错误地视为降级。[ ] 移除
doc/releases/*.rst
. 这应该留下doc/releases/releases.yml
用于文档构建目的。另见提交 33d63c3(“doc: 移除发布分支的发布说明”)的详细信息。[ ] cherry-pick 8cf9ad62949516666ad0f2c0bb7726ef68e4d666 (“doc: 添加发布链接到目录表”)。这将导致琐碎的冲突。
[ ] 在 RTD 添加新主要发布的重定向RTD.
[x] 在 redmine 中添加发布名称(使用https://tracker.ceph.com/custom_fields/16/edit)
[ ] 在 .github/milestone.yml 中添加发布名称,以便 github actions 可以自动将里程碑添加到回滚(此提交必须回滚到发布分支)
[ ] 在 nightlies 中添加发布分支:qa/crontab/teuthology-cronjobs
第一个候选发布
[ ] src/ceph_release: 将类型改为rc
[ ] 选择所有遥测通道,生成遥测报告,并验证没有收集敏感信息(如池名称)
[ ] 检查新池标志是否存在于 pg_pool_t(osd/osd_types.h)中,并将它们添加到遥测的 basic_pool_flags 收集,以防它们不是敏感的
第一个稳定发布
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.