Weekly routine Issue #81
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Weekly routine Issue | |
on: | |
schedule: | |
- cron: "0 8 * * 1" | |
jobs: | |
job: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Create routine issue | |
shell: python | |
run: | | |
import datetime | |
import os | |
import re | |
import sys | |
import requests | |
payload = { | |
"title": f"Week {datetime.datetime.now().strftime('%W')} routine", | |
"body": os.getenv("ISSUE_BODY"), | |
"labels": re.sub(r"\s", "", os.getenv("LABELS", "")).split(",") or None, | |
"assignees": re.sub(r"\s", "", os.getenv("ASSIGNEES", "")).split(",") or None, | |
} | |
api_url = f"https://api.github.com/repos/{os.getenv('REPO')}/issues" | |
url = f"https://github.com/{os.getenv('REPO')}/issues" | |
headers = { | |
"Accept": "application/vnd.github.v3+json", | |
"Authorization": f"token {os.getenv('ACCESS_TOKEN')}", | |
} | |
resp = requests.get(api_url, headers=headers) | |
if resp.status_code != 200: | |
print(f"❌ Couldn't retrieve issues for {url} using {api_url}.") | |
print(f"HTTP {resp.status_code} {resp.reason} - {resp.text}") | |
print("Check your `ACCESS_TOKEN` secret.") | |
sys.exit(1) | |
resp = requests.post(api_url, headers=headers, json=payload) | |
if resp.status_code != 201: | |
print(f"❌ Couldn't create issue for {url}") | |
print(f"HTTP {resp.status_code} {resp.reason} - {resp.text}") | |
sys.exit(1) | |
print(f"✅ Issue successfully created at {url}/{resp.json().get('number')}") | |
sys.exit(0) | |
env: | |
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
REPO: kiwix/k8s | |
LABELS: maint | |
ASSIGNEES: rgaudin,benoit74 | |
ISSUE_BODY: | | |
## Infra | |
- [ ] Check nodes free space | |
```sh | |
df -h / && df -h /data | |
``` | |
- [ ] Nodes and worker system upgrades | |
```sh | |
apt update && apt upgrade | |
``` | |
- [ ] Ensure [all borg repositories](https://www.borgbase.com/) are being updated | |
- [ ] Check Pod errors | |
```sh | |
k get pods -A -o wide|grep Error | |
``` | |
- [ ] Check Pod restarts | |
```sh | |
k get pods -A -o wide | pyp -i 'print("\n".join([line for line in l if re.split(r"\s+", line)[4] != "0"]))' | |
``` | |
- [ ] Check if k8s should/could be upgraded | |
```sh | |
curl -s -H "X-Auth-Token: $SCW_SECRET_KEY" https://api.scaleway.com/k8s/v1/regions/fr-par/clusters/$KIWIX_PROD_CLUSTER|jq ".version,.upgrade_available" | |
curl -s -H "X-Auth-Token: $SCW_SECRET_KEY" https://api.scaleway.com/k8s/v1/regions/fr-par/versions|jq ".versions[].name" | |
``` | |
- [ ] [Upgrade k8s](https://github.com/kiwix/k8s/wiki/Cluster-Setup#upgrading-kubernetes) if applicable | |
### Stats | |
- [ ] Ensure download.kiwix.org stats are being recorded | |
- [ ] Check whether [matomo](https://stats.kiwix.org) should be upgraded | |
## Grafana | |
- [ ] Alert list is [normal](https://kiwixorg.grafana.net/alerting/list) | |
- [ ] Zimfarm dashboard is [normal](https://kiwixorg.grafana.net/d/d2803d94-7c40-4338-bf80-f3cd7cd796bf/zimfarms) (look after last week data) | |
- [ ] Mirrorbrain dashboard is [normal](https://kiwixorg.grafana.net/d/bb0f0990-04c5-4314-8afc-6185ac49c668/mirrorbrain?orgId=1) | |
- [ ] There is no abnormal behaviors on [cluster resources consumption](https://kiwixorg.grafana.net/d/efa86fd1d0c121a26444b636a3f509a8/kubernetes-compute-resources-cluster?orgId=1&refresh=30s&from=now-7d&to=now) | |
## Projects | |
- [ ] UptimeRobot [has no alert](https://uptimerobot.com/dashboard#tvMode) | |
- [ ] [youzim.it backlog](https://farm.youzim.it/pipeline/filter-todo) is reasonable | |
- [ ] No [systematic failure](https://farm.youzim.it/pipeline/filter-failed) in tasks. | |
- [ ] [PRs awaiting your review](https://github.com/notifications?query=reason%3Areview-requested) | |
## Security | |
- [ ] Analyze/merge [dependabot PRs](https://github.com/notifications?query=author%3Adependabot[bot]) | |
**Note**: this is an *automatic reminder* intended for the assignee(s). | |