annotate pi-watchdog/tasks.py @ 332:d4893670f888 default tip

WIP: use watchdog reboot timer on pi
author drewp@bigasterisk.com
date Thu, 27 Feb 2025 11:09:29 -0800
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
332
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
1 import datetime
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
2
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
3 from invoke import task
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
4
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
5 # todo- see https://github.com/GoogleContainerTools/skaffold/issues/9543 for one obstacle
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
6
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
7 now = datetime.datetime.now().replace(microsecond=0)
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
8 now = now.isoformat().replace(':', '_').replace('-', '_')
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
9 base = 'pi_watchdog'
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
10 localImage = f'{base}:{now}'
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
11 remoteImage = f'reg:5000/{base}:latest'
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
12
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
13
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
14 @task
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
15 def build(ctx): # workaround for skaffold build
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
16 ctx.run(f'podman manifest create {localImage}', echo=True)
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
17 ctx.run(f'podman build --platform linux/arm64 --manifest {localImage} -f Dockerfile .', echo=True)
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
18 ctx.run(f'podman manifest push {localImage} {remoteImage}', echo=True)
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
19 print(f'{remoteImage} ready for use')
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
20
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
21
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
22 @task(pre=[build])
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
23 def run(ctx):
d4893670f888 WIP: use watchdog reboot timer on pi
drewp@bigasterisk.com
parents:
diff changeset
24 ctx.run('kubectl apply -f deploy.yaml', echo=True)