docs: POC-katselmus — git-pages retention, ADRt, dokumenttipäivitykset
- ADR 0004: commit-status-periaate (natiivi riittää, API vain custom-linkkiin)
- ADR 0005: provider & consumer -malli (ci-engine.yml lukittu rajapinta)
- docs/design-rationale: uusi periaate 1 "Hyödynnä natiivia",
periaate 2 korjattu (API vain tarvittaessa),
periaate 6 (MinIO→git-pages), teknologiavalinnat poistettu
- docs/config-model: isContainerBuild→isArtifactBuild, Docker-labelit poistettu
- docs/ai-context: monorepo-kuvaus (git-pages oma kokonaisuus, ohut rajapinta)
- docs/architecture, tech-stack, report-hosting, shared-scripts, workflows:
MinIO→git-pages, provider agnostinen build-ekosysteemeille
- docs/adr/: ADRt siirretty decisions/→adr/
- git-pages/docs: retention-osiot päivitetty CronJob→sidecar+HTTP API,
URL-kaava korjattu (reports/{sha8}/)
- git-pages/docs/implementation-notes: uusi (storage v2, Host-header,
whiteout, .init, PATCH+directoryt)
- git-pages/templates/init-job.yaml: post-install init (.index)
- scripts/publish-git-pages.sh: PUT-fallback poistettu (init hoitaa),
palauttaa BASE URL ilman index.html
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Implementation Notes
|
||||
|
||||
Teknisiä huomioita git-pages 0.9.1:n käyttäytymisestä, joita ei ole ilmeistä
|
||||
dokumentaatiosta.
|
||||
|
||||
## Storage v2 (Protobuf manifest)
|
||||
|
||||
Git-pages 0.9.1 käyttää v2-arkkitehtuuria. Kaikki sisältö on pakattu
|
||||
Protobuf-manifestiin (`site/{host}/.index`), ei flat-FS:nä. Tästä seuraa:
|
||||
|
||||
- Tiedostoja ei voi etsiä tai poistaa `find`/`rm`-komennoilla
|
||||
- `.git-pages/manifest.json` listaa kaikki tiedostot (ProtoJSON)
|
||||
- `.git-pages/archive.tar` antaa koko sisällön (saattaa truncata HTTP/2:ssa)
|
||||
|
||||
## Host-header
|
||||
|
||||
Git-pages valitsee sivuston Host-headerin perusteella. Ilman oikeaa Hostia
|
||||
palauttaa 404.
|
||||
|
||||
- Ulkoiset requestit: Traefik välittää alkuperäisen Hostin automaattisesti
|
||||
- Sidecar/localhost: `-H "Host: ci-reports.helm-dev.keskikuja.site"`
|
||||
|
||||
## PATCH ja directory-entryt
|
||||
|
||||
Jos PATCH-tar sisältää directory-entryn (tyyppi directory, tar typeflag '5'),
|
||||
se **korvaa** koko hakemiston dokumentaation mukaan. Tar saa sisältää vain
|
||||
file- ja symlink-entryjä, jotta PATCH toimii odotetusti.
|
||||
|
||||
## Whiteout — tiedostojen poisto
|
||||
|
||||
Ainoa tapa poistaa tiedostoja ilman koko sivuston PUT-korvausta:
|
||||
|
||||
- Tarissa character device entry (`CHRTYPE`, tar typeflag '4')
|
||||
- `devmajor=0`, `devminor=0`
|
||||
- PATCH:ataan sivuston juureen
|
||||
|
||||
## .init — ensimmäinen julkaisu
|
||||
|
||||
Ensimmäinen julkaisu vaatii PUTin, joka luo `.index`-tiedoston. Tämän jälkeen
|
||||
PATCH riittää.
|
||||
|
||||
Helm-chartin post-install -job hoitaa tämän automaattisesti:
|
||||
consumerien publish-scriptien ei tarvitse tuntea asennuksen tilaa.
|
||||
Reference in New Issue
Block a user