44 lines
1.5 KiB
Markdown
44 lines
1.5 KiB
Markdown
# 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.
|