Zastaralá knihovna v mém scraperu
Dneska jsem přišel na to, že mi slítnul v mém domácím Kubernetes kontainer, který se stará o stahování ceny ETF fondu SP500, které si z něj bere Prometheus a následně předává do mé Grafany.
Trošku jsem procházel logy, a došlo mi, že to pravděpodobně bude použitím staré knihovny v Pythonu, protože scrapování se mění, tak vychází i nové knihovny, které se přizpůsobují webu. Nicméně můj docker image zveřejněný na GitHubu byl snad naposledy aktualizován před rokem, a už je zastaralý. Napadlo mě, že by se mohl sestavovat automaticky každý měsíc s nejnovější verzí knihovny, což se v GitHub actions udělá takto:
name: CNB Exporter PROD CI
on:
workflow_dispatch: # Adds manual trigger
schedule:
# Runs at 05:05 UTC on the 5th day of every month
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *
- cron: '5 5 9 * *'
Trošku jsem si s tím ještě hrál, a vše nastavil na používání mého lokálního Runneru, který běží na mém serveru, a rovnou může i restartovat deployment na Kubernetes, který když má nastaveno Pull: Always
si automaticky stáhne nový obraz. To není raketová věda, stačí nastavit, aby Runner měl vlastní roli v Kubernetes, která má právo restartovat deploymenty, role vypadá asi takto
kind: Role
...
rules:
- apiGroups:
- apps
resourceNames:
- '*'
resources:
- deployments
verbs:
- get
- list
- patch
A najednou vše znovu funguje. Nasazování nejnovější verze bez testování bych asi nedoporučoval ve firemním prostředí, tam bych na to asi nejdříve napsal nějaké testy, co to otestují, ale doma se z toho hlediska, že na tom úplně nevisím a časové možnosti jsou omezené tomuto nebudu věnovat.