16240466ec
Domyka drabinę produktów: astrodemo (dwie funkcje) → astroklient → astrololo. Host astroklient.czernobog.pl, obraz astrololo-astroklient, port 8006. WŁASNY STOS, NIE WSPÓLNY. Nowa para data-astroklient + logic-astroklient i nowy udział /mnt/Tank1/astrololo-klient. Pule kont izolują klientów od siebie w każdym wariancie, ale to izolacja PROGRAMOWA — opiera się na poprawności mechanizmu pul. Granica na poziomie systemu plików nie zależy od tego, czy w kodzie niczego nie przeoczono, a przy sprzątaniu demo nie da się przez pomyłkę skasować cudzych danych, bo leżą gdzie indziej. Klaster ma zapas (węzły na 24–38% pamięci), więc koszt dwóch podów nie był argumentem przeciw. Silnik własny (permisywny) — silnik B (AGPL) nie wchodzi do produktu oddawanego klientom. data-astroklient dostaje nodeAffinity na etykietę zdolności procesora, jak pozostałe warstwy danych: ciągnie pandas, a przez nią NumPy z bazą x86-64-v2. WPIS W LIŚCIE OBSERWOWANYCH OBRAZÓW od razu, z komentarzem dlaczego. Bez niego usługa nie deployuje się sama: obraz powstaje w rejestrze, kustomization zostaje na starym tagu, i wygląda to na zepsute CI. Tak zawisł kiedyś render. Certyfikat obejmuje trzeci host; DNS już wskazuje (wildcard). RUNBOOK: udział NFS ze WSZYSTKIMI CZTEREMA węzłami, konta jako hashe scrypt, własny SESSION_SECRET i własna nazwa ciasteczka (trzy produkty nie mają powodu uznawać nawzajem swoich sesji), unieważnianie dostępu bez wolumenu stanu, oraz sprawdzenie po wdrożeniu. W sprawdzeniu poprawiona rzecz, którą najpierw napisałem błędnie: BEZ SESJI każdy adres oddaje 303, także nieistniejący, bo bramka logowania działa przed trasowaniem. Pętla curl bez ciasteczka pokazywałaby 303 dla wszystkiego i sugerowała, że nieobecne ekrany „są". Sprawdzenie ma sens dopiero z sesją — i wtedy dają 404, nie 403. Zweryfikowane: kustomize build (37 obiektów), dry-run serwerowy przyjmuje wszystkie osiem nowych obiektów, kody odpowiedzi sprawdzone na złożonym drzewie. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
54 lines
2.6 KiB
YAML
54 lines
2.6 KiB
YAML
# Konfiguracja argocd-image-updater dla astrololo — ŹRÓDŁO PRAWDY tego, CO śledzimy.
|
|
#
|
|
# Model v1.x: osobny CRD `ImageUpdater` w ns `argocd` (nie adnotacje na Application).
|
|
# Lista `images` jest JAWNA — obraz, którego tu NIE MA, nigdy nie zostanie podbity,
|
|
# choćby CI go budowało. Tak przez chwilę wisiał `render` na `:latest` (PRE-24):
|
|
# usługa istniała i budowała tag SHA, ale updater jej nie znał, więc kustomization
|
|
# jej nie ruszał. Dopisanie wpisu = wejście usługi do rotacji.
|
|
#
|
|
# ⚠️ TEGO PLIKU NIE MA w astrololo/kustomization.yaml i NIE MA GO TAM MIEĆ:
|
|
# 1. resource żyje w ns `argocd`, a Application astrololo celuje w ns `astrololo`
|
|
# — auto-sync przez kustomize próbowałby zapisać poza swój namespace docelowy;
|
|
# 2. to konfiguracja kontrolera, który wdraża tę właśnie aplikację — niech app
|
|
# nie zarządza narzędziem, które ją wdraża.
|
|
# Plik jest trzymany w repo dla odtwarzalności i historii; nakłada się go RĘCZNIE:
|
|
# kubectl apply -f astrololo/image-updater.yaml
|
|
#
|
|
# Strategia `newest-build`: updater bierze obraz o NAJNOWSZYM znaczniku czasu builda
|
|
# i zapisuje jego tag SHA do kustomization (write-back git). Uwaga na reprodukowalne
|
|
# buildy — identyczny `created` na kilku tagach potrafi zablokować wybór najnowszego.
|
|
apiVersion: argocd-image-updater.argoproj.io/v1alpha1
|
|
kind: ImageUpdater
|
|
metadata:
|
|
name: astrololo
|
|
namespace: argocd
|
|
spec:
|
|
applicationRefs:
|
|
- namePattern: astrololo
|
|
images:
|
|
- alias: data
|
|
imageName: gitea.czernobog.pl/gitea/astrololo-data
|
|
- alias: logic
|
|
imageName: gitea.czernobog.pl/gitea/astrololo-logic
|
|
- alias: presentation
|
|
imageName: gitea.czernobog.pl/gitea/astrololo-presentation
|
|
- alias: render
|
|
imageName: gitea.czernobog.pl/gitea/astrololo-render
|
|
# Wersja demo (PRE-28). Obraz, którego nie ma na tej liście, NIGDY się nie
|
|
# podbije, choćby CI go budowało — tak przez chwilę wisiał render na :latest.
|
|
- alias: astrodemo
|
|
imageName: gitea.czernobog.pl/gitea/astrololo-astrodemo
|
|
# BEZ TEGO WPISU nowa usługa NIE DEPLOYUJE SIĘ SAMA: obraz powstaje
|
|
# w rejestrze, ale kustomization zostaje na starym tagu i wygląda to na
|
|
# zepsute CI. Tak zawisł kiedyś render.
|
|
- alias: astroklient
|
|
imageName: gitea.czernobog.pl/gitea/astrololo-astroklient
|
|
commonUpdateSettings:
|
|
updateStrategy: newest-build
|
|
writeBackConfig:
|
|
method: git:secret:argocd/git-creds
|
|
gitConfig:
|
|
repository: https://gitea.czernobog.pl/gitea/deploy.git
|
|
branch: master
|
|
writeBackTarget: kustomization:/astrololo
|