590679ad65
Zastępuje gałąź feat/astroklient. Tamta była odbita od mastera sprzed jedenastu commitów i miała przypięte obrazy `ee3c515d`, podczas gdy master stoi na `320a0ab2` — merge w tamtej postaci COFNĄŁBY klaster o kilka wersji. Zamiast przepychać cztery commity przez rebase (każdy konfliktował na README), gałąź jest odtworzona jednym commitem na aktualnym masterze, z zachowanymi tagami. ZMIANA NAZWY. astroklient-demo → astrodemo, wraz z nazwą obrazu, zmiennymi (ASTRODEMO_USERS) i sekretem (astrololo-astrodemo). Nazwa „astroklient" jest zarezerwowana dla warstwy pośredniej: pełne funkcje astrologiczne, bez generowania tekstu i bez administracji. BRAKOWAŁO WEJŚCIA Z ZEWNĄTRZ. Manifesty tworzyły Deployment i Service, ale żadnej reguły w Ingressie — usługa wstałaby i nie dałoby się do niej wejść. Dołożony host astrodemo.czernobog.pl z przekierowaniem z http, a certyfikat obejmuje teraz oba hosty. Osobny host, a nie ścieżka `/demo` pod adresem astrololo, CELOWO: ścieżka dzieliłaby z pełną aplikacją pochodzenie w rozumieniu przeglądarki, czyli i ciasteczka — wejście do jednej ruszałoby sesję w drugiej. OBRAZ NA LIŚCIE OBSERWOWANYCH. Bez wpisu w image-updater.yaml obraz nigdy się nie podbije, choćby CI go budowało. Tak przez chwilę wisiał render na :latest. POPRAWKI W RUNBOOKU. Opis twierdził, że demo pracuje na produkcyjnej warstwie danych — nieprawda od PRE-29, ma własny stos i własny udział. Ponadto zmiana nazw rozjechała ścieżkę udziału: `zfs create Tank1/astrololo-astrodemo` przy manifeście montującym `/mnt/Tank1/astrololo-demo` utworzyłby inny zbiór niż ten, którego pod szuka. Ścieżka jest stanem na dysku, nie nazwą w kodzie — zostaje jak była. Sprawdzone: `kubectl kustomize astrololo/` buduje 29 obiektów, tagi obrazów pozostają na 320a0ab2. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
69 lines
2.6 KiB
YAML
69 lines
2.6 KiB
YAML
# Certyfikat dla wejścia do aplikacji (PRE-16).
|
|
#
|
|
# Dlaczego WŁASNE CA, a nie Let's Encrypt: klaster stoi w LAN (traefik trzyma
|
|
# LoadBalancera na 192.168.1.x), więc walidacja HTTP-01 nie ma jak dojść z
|
|
# internetu, a DNS-01 wymagałby trzymania w klastrze tokena API do domeny.
|
|
# Własne CA nie potrzebuje niczego z zewnątrz, a certyfikaty odnawia samo.
|
|
#
|
|
# WYMAGANIE WSTĘPNE: cert-manager musi być w klastrze PRZED synchronizacją tego
|
|
# katalogu — inaczej API odrzuci poniższe obiekty jako nieznane rodzaje zasobów.
|
|
# Instalacja jednorazowa: patrz README.md.
|
|
#
|
|
# Wszystko jest w namespace `astrololo` (Issuer, nie ClusterIssuer) świadomie:
|
|
# ArgoCD ma tu włączone `prune`, a zasoby o zasięgu całego klastra chcemy trzymać
|
|
# poza aplikacją, która może zostać skasowana.
|
|
---
|
|
apiVersion: cert-manager.io/v1
|
|
kind: Issuer
|
|
metadata:
|
|
name: selfsigned
|
|
namespace: astrololo
|
|
spec:
|
|
selfSigned: {}
|
|
---
|
|
# Korzeń zaufania. TO JEST certyfikat, który raz importujesz do przeglądarki
|
|
# i systemu — patrz README. Stąd długi termin ważności: importu nie chcemy
|
|
# powtarzać co kwartał.
|
|
apiVersion: cert-manager.io/v1
|
|
kind: Certificate
|
|
metadata:
|
|
name: astrololo-ca
|
|
namespace: astrololo
|
|
spec:
|
|
isCA: true
|
|
commonName: astrololo internal CA
|
|
secretName: astrololo-ca # tu lądują klucz i certyfikat korzenia
|
|
duration: 87600h # 10 lat
|
|
renewBefore: 8760h # odnowienie na rok przed końcem
|
|
privateKey: { algorithm: ECDSA, size: 256 }
|
|
issuerRef: { name: selfsigned, kind: Issuer, group: cert-manager.io }
|
|
---
|
|
apiVersion: cert-manager.io/v1
|
|
kind: Issuer
|
|
metadata:
|
|
name: astrololo-ca
|
|
namespace: astrololo
|
|
spec:
|
|
ca: { secretName: astrololo-ca }
|
|
---
|
|
# Właściwy certyfikat serwera. Krótki termin CELOWO: przy 90 dniach odnawianie
|
|
# jest sprawdzane w praktyce co kwartał, więc awaria wyjdzie od razu, a nie za
|
|
# dziesięć lat, gdy nikt już nie będzie pamiętał, jak to działa.
|
|
apiVersion: cert-manager.io/v1
|
|
kind: Certificate
|
|
metadata:
|
|
name: astrololo-tls
|
|
namespace: astrololo
|
|
spec:
|
|
secretName: astrololo-tls # tego szuka Ingress
|
|
commonName: astrololo.czernobog.pl
|
|
dnsNames:
|
|
- astrololo.czernobog.pl
|
|
# Jeden certyfikat na oba hosty. Osobny wymagałby osobnego sekretu i osobnego
|
|
# odnawiania, a to ten sam klaster i ten sam wystawca.
|
|
- astrodemo.czernobog.pl
|
|
duration: 2160h # 90 dni
|
|
renewBefore: 720h # 30 dni zapasu
|
|
privateKey: { algorithm: ECDSA, size: 256, rotationPolicy: Always }
|
|
issuerRef: { name: astrololo-ca, kind: Issuer, group: cert-manager.io }
|