summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/CODEOWNERS136
-rw-r--r--.github/labeler.yml251
-rw-r--r--.github/milestone.yml6
-rw-r--r--.github/pull_request_template.md58
-rw-r--r--.github/stale.yml66
-rw-r--r--.github/workflows/needs-rebase.yml18
-rw-r--r--.github/workflows/pr-triage.yml24
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 }}"