diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/CODEOWNERS | 136 | ||||
-rw-r--r-- | .github/labeler.yml | 251 | ||||
-rw-r--r-- | .github/milestone.yml | 6 | ||||
-rw-r--r-- | .github/pull_request_template.md | 58 | ||||
-rw-r--r-- | .github/stale.yml | 66 | ||||
-rw-r--r-- | .github/workflows/needs-rebase.yml | 18 | ||||
-rw-r--r-- | .github/workflows/pr-triage.yml | 24 |
7 files changed, 559 insertions, 0 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..565275481 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,136 @@ +# Dashboard team to review dashboard related code +/src/pybind/mgr/dashboard @ceph/dashboard +/qa/suites/rados/dashboard @ceph/dashboard +/qa/tasks/mgr/test_dashboard.py @ceph/dashboard +/qa/tasks/mgr/dashboard @ceph/dashboard +/monitoring @ceph/dashboard +/doc/mgr/dashboard.rst @ceph/dashboard + +# Dashboard API team +/src/pybind/mgr/dashboard/openapi.yaml @ceph/api +/src/pybind/mgr/dashboard/controllers @ceph/api +/src/pybind/mgr/dashboard/frontend/src/app/shared/api @ceph/api +/src/pybind/mgr/dashboard/run-backend-api-tests.sh @ceph/api +/qa/suites/rados/dashboard @ceph/api +/qa/tasks/mgr/test_dashboard.py @ceph/api +/qa/tasks/mgr/dashboard @ceph/api +/qa/tasks/mgr/test_module_selftest.py @ceph/api + +# For Orchestrator related PRs +/src/cephadm @ceph/orchestrators +/src/pybind/mgr/orchestrator @ceph/orchestrators +/src/pybind/mgr/rook @ceph/orchestrators +/src/pybind/mgr/cephadm @ceph/orchestrators +/src/pybind/mgr/test_orchestrator @ceph/orchestrators +/src/python-common/ceph/deployment @ceph/orchestrators +/qa/workunits/cephadm @ceph/orchestrators +/qa/tasks/cephadm.py @ceph/orchestrators +/qa/tasks/mgr/test_orchestrator_cli.py @ceph/orchestrators +/qa/tasks/mgr/test_cephadm_orchestrator.py @ceph/orchestrators +/qa/suites/rados/cephadm @ceph/orchestrators +/doc/mgr/orchestrator.rst @ceph/orchestrators +/doc/mgr/orchestrator_modules.rst @ceph/orchestrators +/doc/cephadm @ceph/orchestrators +/doc/dev/cephadm.rst @ceph/orchestrators +/doc/man/8/cephadm.rst @ceph/orchestrators + +#ceph-volume +/src/ceph-volume @ceph/ceph-volume +/doc/ceph-volume @ceph/ceph-volume + +# crimson +/src/crimson @ceph/crimson +/src/test/crimson @ceph/crimson + +# doc-writers +AUTHORS @ceph/doc-writers +CodingStyle @ceph/doc-writers +COPYING* @ceph/doc-writers +/doc/ @ceph/doc-writers +README* @ceph/doc-writers +*.rst @ceph/doc-writers + +# core +/doc/man/8/ceph-authtool.rst @ceph/core +/doc/man/8/ceph-conf.rst @ceph/core +/doc/man/8/ceph-create-keys.rst @ceph/core +/doc/man/8/ceph-kvstore-tool.rst @ceph/core +/doc/man/8/ceph-mon.rst @ceph/core +/doc/man/8/ceph-objectstore-tool.rst @ceph/core +/doc/man/8/ceph-osd.rst @ceph/core +/doc/man/8/ceph.rst @ceph/core +/doc/man/8/crushtool.rst @ceph/core +/doc/man/8/monmaptool.rst @ceph/core +/doc/man/8/rados.rst @ceph/core +/doc/rados @ceph/core +/qa/standalone @ceph/core +/qa/suites/rados @ceph/core +/qa/workunits/erasure-code @ceph/core +/qa/workunits/mgr @ceph/core +/qa/workunits/mon @ceph/core +/qa/workunits/objectstore @ceph/core +/qa/workunits/rados @ceph/core +/src/ceph.in @ceph/core +/src/ceph_osd.cc @ceph/core +/src/ceph_mon.cc @ceph/core +/src/blk @ceph/core +/src/crush @ceph/core +/src/erasure-code @ceph/core +/src/kv @ceph/core +/src/librados @ceph/core +/src/mgr @ceph/core +/src/mon @ceph/core +/src/msg @ceph/core +/src/os @ceph/core +/src/osd @ceph/core +/src/tools/rados @ceph/core +/src/test/osd @ceph/core + +# rbd +/doc/dev/rbd* @ceph/rbd +/doc/man/8/ceph-rbdnamer.rst @ceph/rbd +/doc/man/8/rbd* @ceph/rbd +/doc/rbd @ceph/rbd +/doc/start/quick-rbd.rst @ceph/rbd +/qa/rbd @ceph/rbd +/qa/run_xfstests* @ceph/rbd +/qa/suites/krbd @ceph/rbd +/qa/suites/rbd @ceph/rbd +/qa/tasks/ceph_iscsi_client.py @ceph/rbd +/qa/tasks/metadata.yaml @ceph/rbd +/qa/tasks/qemu.py @ceph/rbd +/qa/tasks/rbd* @ceph/rbd +/qa/tasks/userdata* @ceph/rbd +/qa/workunits/cls/test_cls_journal.sh @ceph/rbd +/qa/workunits/cls/test_cls_lock.sh @ceph/rbd +/qa/workunits/cls/test_cls_rbd.sh @ceph/rbd +/qa/workunits/rbd @ceph/rbd +/src/ceph-rbdnamer @ceph/rbd +/src/cls/journal @ceph/rbd +/src/cls/lock @ceph/rbd +/src/cls/rbd @ceph/rbd +/src/common/options/rbd* @ceph/rbd +/src/etc-rbdmap @ceph/rbd +/src/include/krbd.h @ceph/rbd +/src/include/rbd* @ceph/rbd +/src/journal @ceph/rbd +/src/krbd.cc @ceph/rbd +/src/librbd @ceph/rbd +/src/ocf @ceph/rbd +/src/pybind/mgr/rbd_support @ceph/rbd +/src/pybind/rbd @ceph/rbd +/src/rbd* @ceph/rbd +/src/test/cli/rbd @ceph/rbd +/src/test/cli-integration/rbd @ceph/rbd +/src/test/cls_journal @ceph/rbd +/src/test/cls_lock @ceph/rbd +/src/test/cls_rbd @ceph/rbd +/src/test/journal @ceph/rbd +/src/test/librbd @ceph/rbd +/src/test/pybind/test_rbd.py @ceph/rbd +/src/test/rbd* @ceph/rbd +/src/test/run-rbd* @ceph/rbd +/src/test/test_rbd* @ceph/rbd +/src/tools/rbd* @ceph/rbd +/systemd/rbdmap.service.in @ceph/rbd +/udev/50-rbd.rules @ceph/rbd diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 000000000..b8a66602c --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,251 @@ +api-change: + - src/pybind/mgr/dashboard/openapi.yaml + +build/ops: + - "**/CMakeLists.txt" + - admin/** + - ceph.spec.in + - cmake/** + - debian/** + - do_cmake.sh + - do_freebsd.sh + - install-deps.sh + - keys/** + - make-debs.sh + - make-dist + - make-srpm.sh + - run-make-check.sh + - win32_build.sh + - win32_deps_build.sh + +documentation: + - AUTHORS + - CONTRIBUTING.rst + - COPYING* + - CodingStyle + - PendingReleaseNotes + - README.* + - SubmittingPatches* + - doc/** + - doc_deps.deb.txt + - man/** + - "**/*.+(rst|md)" + +mon: + - doc/man/8/ceph-mon.rst + - doc/man/8/monmaptool.rst + - doc/mon/** + - qa/workunits/mon/** + - src/mon/** + - src/test/mon/** + +mgr: + - doc/mgr/** + - src/mgr/** + - src/pybind/mgr/ceph_module.pyi + - src/pybind/mgr/mgr_module.py + - src/pybind/mgr/mgr_util.py + - src/pybind/mgr/requirements.txt + - src/pybind/mgr/tox.ini + - src/test/mgr/** + +pybind: + - src/pybind/cephfs/** + - src/pybind/mgr/** + - src/pybind/rados/** + - src/pybind/rbd/** + - src/pybind/rgw/** + - src/pybind/** + - src/python-common/** + +common: + - src/common/** + - src/global/** + - src/log/** + +cephadm: + - doc/cephadm/** + - doc/dev/cephadm/** + - doc/man/8/cephadm.rst + - qa/suites/rados/cephadm/** + - qa/tasks/cephadm.py + - qa/tasks/mgr/test_cephadm_orchestrator.py + - qa/workunits/cephadm/** + - src/cephadm/** + - src/pybind/mgr/cephadm/** + - src/python-common/** + +orchestrator: + - doc/mgr/orchestrator.rst + - doc/mgr/orchestrator_modules.rst + - src/pybind/mgr/orchestrator/** + - src/pybind/mgr/rook/** + - src/pybind/mgr/test_orchestrator/** + - qa/tasks/mgr/test_orchestrator_cli.py + +bluestore: + - src/os/bluestore/** + +core: + - doc/man/8/ceph-authtool.rst + - doc/man/8/ceph-conf.rst + - doc/man/8/ceph-create-keys.rst + - doc/man/8/ceph-kvstore-tool.rst + - doc/man/8/ceph-mon.rst + - doc/man/8/ceph-objectstore-tool.rst + - doc/man/8/ceph-osd.rst + - doc/man/8/ceph.rst + - doc/man/8/crushtool.rst + - doc/man/8/monmaptool.rst + - doc/man/8/rados.rst + - doc/rados/** + - qa/standalone/** + - qa/suites/rados/** + - qa/workunits/erasure-code/** + - qa/workunits/mgr/** + - qa/workunits/mon/** + - qa/workunits/objectstore/** + - qa/workunits/rados/** + - src/ceph.in + - src/ceph_osd.cc + - src/ceph_mon.cc + - src/blk/** + - src/crush/* + - src/erasure-code/** + - src/kv/** + - src/librados/** + - src/mgr/** + - src/mon/** + - src/msg/** + - src/os/** + - src/osd/** + - src/tools/rados/** + - src/test/osd/** + +crimson: + - doc/dev/crimson/** + - src/crimson/** + - src/test/crimson/** + - qa/suites/crimson-rados/** + +dashboard: + - src/pybind/mgr/dashboard/** + - qa/suites/rados/dashboard/** + - qa/tasks/mgr/test_dashboard.py + - qa/tasks/mgr/dashboard/** + - monitoring/** + - doc/mgr/dashboard.rst + - doc/dev/developer_guide/dash-devel.rst + +cephfs: + - doc/cephfs/** + - doc/man/8/ceph-fuse.rst + - doc/man/8/ceph-mds.rst + - doc/man/8/ceph-syn.rst + - doc/man/8/mount.ceph.rst + - doc/man/8/mount.fuse.ceph.rst + - qa/suites/fs/** + - qa/suites/multimds/** + - qa/tasks/ceph_fuse.py + - qa/tasks/cephfs/** + - qa/tasks/cephfs_test_runner.py + - qa/tasks/fs.py + - qa/tasks/kclient.py + - qa/tasks/mds_creation_failure.py + - qa/tasks/mds_thrash.py + - src/ceph_fuse.cc + - src/ceph_mds.cc + - src/ceph_syn.cc + - src/client/** + - src/include/ceph_fs.h + - src/include/ceph_fuse.h + - src/include/cephfs/** + - src/include/filepath.h + - src/include/frag.h + - src/include/fs_types.h + - src/libcephfs.cc + - src/mds/** + - src/mon/MDSMonitor.* + - src/mon/FSCommands.* + - src/pybind/ceph_volume_client.py + - src/pybind/cephfs/** + - src/pybind/mgr/mds_autoscaler/** + - src/pybind/mgr/status/** + - src/pybind/mgr/volumes/** + - src/test/fs/** + - src/test/libcephfs/** + - src/tools/cephfs/** + - src/tools/cephfs_mirror/** + +CI: + - .github/** + +rbd: + - doc/man/8/rbd* + - doc/rbd/** + - qa/suites/rbd/** + - qa/workunits/rbd/** + - src/include/rbd/** + - src/librbd/** + - src/pybind/mgr/rbd_support/** + - src/pybind/rbd/** + - src/test/librbd/** + - src/test/rbd_mirror/** + - src/tools/rbd/** + - src/tools/rbd_ggate/** + - src/tools/rbd_mirror/** + - src/tools/rbd_nbd/** + - src/tools/rbd_wnbd/** + +rgw: + - qa/suites/rgw/** + - qa/tasks/rgw* + - qa/tasks/s3* + - src/cls/cmpomap/** + - src/cls/fifo/** + - src/cls/otp/** + - src/cls/queue/** + - src/cls/rgw/** + - src/cls/rgw_gc/** + - src/cls/timeindex/** + - src/mrgw.sh + - src/rgw/** + - src/test/cls_rgw/** + - src/test/librgw_* + - src/test/rgw/** + - src/test/test_rgw* + +ceph-volume: + - src/ceph-volume/** + - doc/ceph-volume/** + - src/python-common/ceph/deployment/drive_group.py + - src/python-common/ceph/deployment/drive_selection/** + +tests: + - qa/tasks/** + - qa/workunits/** + - src/test/** + +nfs: + - src/pybind/mgr/nfs/** + - src/pybind/mgr/cephadm/services/nfs.py + - src/pybind/mgr/cephadm/templates/services/nfs/ganesha.conf.j2 + - src/pybind/mgr/dashboard/controllers/nfs.py + - src/pybind/mgr/dashboard/tests/test_nfs.py + - qa/tasks/cephfs/test_nfs.py + - doc/mgr/nfs.rst + - doc/cephfs/nfs.rst + - doc/cephadm/nfs.rst + - doc/radosgw/nfs.rst + - doc/dev/vstart-ganesha.rst + +monitoring: + - doc/cephadm/monitoring.rst + - src/pybind/mgr/cephadm/services/monitoring.py + - src/pybind/mgr/cephadm/templates/services/alertmanager/** + - src/pybind/mgr/cephadm/templates/services/grafana/** + - src/pybind/mgr/cephadm/templates/services/prometheus/** + - src/pybind/mgr/dashboard/ci/check_grafana_dashboards.py + - src/pybind/mgr/prometheus/** + - monitoring/** + diff --git a/.github/milestone.yml b/.github/milestone.yml new file mode 100644 index 000000000..d42069501 --- /dev/null +++ b/.github/milestone.yml @@ -0,0 +1,6 @@ +base-branch: + - "(luminous)" + - "(nautilus)" + - "(octopus)" + - "(pacific)" + - "(quincy)" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..46ad1113d --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,58 @@ + +<!-- +Thank you for opening a pull request! Here are some tips on creating +a well formatted contribution. + +Please give your pull request a title like "[component]: [short description]" + +This is the format for commit messages: + +""" +[component]: [short description] + +[A longer multiline description] + +Fixes: [ticket URL on tracker.ceph.com, create one if necessary] +Signed-off-by: [Your Name] <[your email]> +""" + +The Signed-off-by line is important, and it is your certification that +your contributions satisfy the Developers Certificate or Origin. For +more detail, see SubmittingPatches.rst. + +The component is the short name of a major daemon or subsystem, +something like "mon", "osd", "mds", "rbd, "rgw", etc. For ceph-mgr modules, +give the component as "mgr/<module name>" rather than a path into pybind. + +For more examples, simply use "git log" and look at some historical commits. + +This was just a quick overview. More information for contributors is available here: +https://raw.githubusercontent.com/ceph/ceph/master/SubmittingPatches.rst + +--> +## Checklist +- [ ] References tracker ticket +- [ ] Updates documentation if necessary +- [ ] Includes tests for new functionality or reproducer for bug + +--- + +<details> +<summary>Show available Jenkins commands</summary> + +- `jenkins retest this please` +- `jenkins test classic perf` +- `jenkins test crimson perf` +- `jenkins test signed` +- `jenkins test make check` +- `jenkins test make check arm64` +- `jenkins test submodules` +- `jenkins test dashboard` +- `jenkins test dashboard cephadm` +- `jenkins test api` +- `jenkins test docs` +- `jenkins render docs` +- `jenkins test ceph-volume all` +- `jenkins test ceph-volume tox` + +</details> diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 000000000..d375db30a --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,66 @@ +# Configuration for probot-stale - https://github.com/probot/stale + +# Number of days of inactivity before an Issue or Pull Request becomes stale +daysUntilStale: 60 + +# Number of days of inactivity before an Issue or Pull Request with the stale label is closed. +# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. +daysUntilClose: 90 + +# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable +exemptLabels: + - pinned + - security + - "[Status] Maybe Later" + +# Set to true to ignore issues in a project (defaults to false) +exemptProjects: true + +# Set to true to ignore issues in a milestone (defaults to false) +exemptMilestones: true + +# Label to use when marking as stale +staleLabel: stale + +# Comment to post when marking as stale. Set to `false` to disable +markComment: > + This pull request has been automatically marked as stale because it + has not had any activity for 60 days. It will be closed if no further + activity occurs for another 30 days. + + If you are a maintainer or core committer, please follow-up on this + pull request to identify what steps should be taken by the author to move this + proposed change forward. + + If you are the author of this pull request, thank you for your proposed + contribution. If you believe this change is still appropriate, please + ensure that any feedback has been addressed and ask for a code review. + +# Comment to post when removing the stale label. +# unmarkComment: > +# Your comment here. + +# Comment to post when closing a stale Issue or Pull Request. +closeComment: > + This pull request has been automatically closed because there has + been no activity for 90 days. Please feel free to reopen this pull + request (or open a new one) if the proposed change is still + appropriate. Thank you for your contribution! + +# Limit the number of actions per hour, from 1-30. Default is 30 +limitPerRun: 30 + +# Limit to only `issues` or `pulls` +only: pulls + +# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': +# pulls: +# daysUntilStale: 30 +# markComment: > +# This pull request has been automatically marked as stale because it has not had +# recent activity. It will be closed if no further activity occurs. Thank you +# for your contributions. + +# issues: +# exemptLabels: +# - confirmed diff --git a/.github/workflows/needs-rebase.yml b/.github/workflows/needs-rebase.yml new file mode 100644 index 000000000..d9e2c706f --- /dev/null +++ b/.github/workflows/needs-rebase.yml @@ -0,0 +1,18 @@ +--- +name: "Pull Request Needs Rebase?" +on: + pull_request_target: + types: [opened, synchronize, reopened] +jobs: + needs-rebase: + runs-on: ubuntu-latest + steps: + # eps1lon/actions-label-merge-conflict@v2.0.1 + # (NOTE: pinning the action to a given commit is a security best-practice: + # https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/security-hardening-for-github-actions) + - name: Check if PR needs rebase + uses: eps1lon/actions-label-merge-conflict@b8bf8341285ec9a4567d4318ba474fee998a6919 + with: + repoToken: "${{ secrets.GITHUB_TOKEN }}" + dirtyLabel: "needs-rebase" + commentOnDirty: "This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved" diff --git a/.github/workflows/pr-triage.yml b/.github/workflows/pr-triage.yml new file mode 100644 index 000000000..481f75331 --- /dev/null +++ b/.github/workflows/pr-triage.yml @@ -0,0 +1,24 @@ +--- +name: "Pull Request Triage" +on: pull_request_target +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +jobs: + pr-triage: + runs-on: ubuntu-latest + steps: + - name: Assign labels based on modified files + uses: actions/labeler@9794b1493b6f1fa7b006c5f8635a19c76c98be95 + with: + sync-labels: '' + repo-token: "${{ secrets.GITHUB_TOKEN }}" + - name: Assign to Dashboard project + uses: srggrs/assign-one-project-github-action@65a8ddab497df42ef268001e67bbf976f8fd39e1 + if: contains(github.event.pull_request.labels.*.name, 'dashboard') + with: + project: https://github.com/ceph/ceph/projects/6 + - name: Assign milestone based on target brach name + uses: iyu/actions-milestone@dbf7e5348844c9ddc6b803a5721b85fa70fe3bb9 + with: + configuration-path: .github/milestone.yml + repo-token: "${{ secrets.GITHUB_TOKEN }}" |