diff --git a/.github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md b/.github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md new file mode 100644 index 0000000000..34b50371e1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md @@ -0,0 +1,26 @@ +## Q{{ quarter }} Quarterly Maintenance: {{ software }} + +_Please Check for updated stable versions of the above software and relevant security patches._ + +### Prior Work + +_Please Link to previously completed relevant tickets._ + +### Dependencies + +- List any systems or components that might be affected by this Metabase maintenance. + +### Acceptance Criteria + +- [ ] Describe the upgrade methodology and any specific steps involved (unless already documented in prior work). +- [ ] Document the upgrade process and any relevant changes. +- [ ] Create issues around any roadblocks encountered. +- [ ] Conduct thorough testing to verify functionality after the upgrade and patching. + +### Rollback Plan + +- Briefly outline the steps to revert to the previous version in case of issues. + +### Notes + +_Please enter any additional information that will facilitate the completion of this maintenance task. For example: Are there any constraints not mentioned above? Are there any alternatives you have considered?_ diff --git a/.github/workflows/quarterly-maintenance.yml b/.github/workflows/quarterly-maintenance.yml new file mode 100644 index 0000000000..0206d0f236 --- /dev/null +++ b/.github/workflows/quarterly-maintenance.yml @@ -0,0 +1,99 @@ +name: Quarterly Maintenance + +on: + schedule: + - cron: '0 0 1 1,4,7,10 *' # Run at midnight on the 1st of January, April, July, and October + +jobs: + create_issues: + runs-on: ubuntu-latest + steps: + - name: Set quarter variable + run: | + const now = new Date(); + const quarter = Math.floor((now.getMonth() / 3) + 1); + echo "quarter=${quarter}" >> $GITHUB_ENV + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Create Metabase issue + uses: peter-evans/create-issue-from-file@v4 + with: + token: ${{ secrets.GH_PROJECTS_TOKEN }} + title: Quarterly Maintenance - Metabase Q${{ quarter }} + content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + labels: quarterly, maintenance, metabase + # template-variables: {"software": "Metabase", "quarter": "${{ quarter }}"} + + # - name: Create Jupyterhub issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - Jupyterhub Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, jupyterhub + # template-variables: '{"software": "Jupyterhub", "quarter": "'${{ env.quarter }}'"}' + + # - name: Create Kubernetes issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - Kubernetes Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, kubernetes + # template-variables: '{"software": "Kubernetes", "quarter": "'${{ env.quarter }}'"}' + + # - name: Create Sentry issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - Sentry Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, sentry + # template-variables: '{"software": "Sentry", "quarter": "'${{ env.quarter }}'"}' + + # - name: Create Airflow issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - Airflow Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, airflow + # template-variables: '{"software": "Airflow", "quarter": "'${{ env.quarter }}'"}' + + # - name: Create Composer issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - Composer Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, composer + # template-variables: '{"software": "Composer", "quarter": "'${{ env.quarter }}'"}' + + # - name: Create RT Archiver base image issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - RT Archiver base image Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, rt-archiver + # template-variables: '{"software": "RT Archiver base image", "quarter": "'${{ env.quarter }}'"}' + + # - name: Create dependabot PRs issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - Review and Merge dependabot PRs Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, dependabot + # template-variables: '{"software": "dependabot pull requests", "quarter": "'${{ env.quarter }}'"}' + + # - name: Create AWS key rotation issue + # uses: peter-evans/create-issue-from-file@v4 + # with: + # token: ${{ secrets.GH_PROJECTS_TOKEN }} + # title: Quarterly Maintenance - AWS key rotation Q${{ env.quarter }} + # content-filepath: .github/ISSUE_TEMPLATE/quarterly_infrastructure_maintenance.md + # labels: quarterly, maintenance, aws + # template-variables: '{"software": "AWS key rotation", "quarter": "'${{ env.quarter }}'"}'