Synchronizační repozitář pro soubory hostované na data.cesko.digital.
Pro přidání nového souboru na data.cesko.digital je nutné:
- Soubor nahrát do složky
content
- Vytvořit krátkodobou větev a commit se souborem
- Push
- Vytvořit pull request a provést kontrolu (pull request by měl obsahovat změny pouze ve složce
content
, viz sekce Změna infrastruktury) - Merge
Cesta k souboru kopíruje strukturu repozitáře, tedy soubor content/prirucka.pdf
bude k dispozici na adrese data.cesko.digital/prirucka.pdf
.
Součástí definice infrastruktury je i bucket pro automatizovaná data jako je např. derisking-handbook.
Nahrávání do tohoto bucketu je řešeno odděleně, ale požadavek je přesměrován na tento "automatizovaný bucket" pokud soubor není nalezen v primárním bucketu.
Pro nastavení AWS S3 a Cloudfront lze využít Terraform konfiguraci.
Nejprve je nutné spustit lokálně terraform apply
pro tuto část:
provider "aws" {
region = "eu-central-1"
}
resource "aws_s3_bucket" "infrastructure_bucket" {
bucket = "cd-assets-infrastructure"
acl = "private"
}
Potom spustit terraform init
pro přidanou část:
terraform {
backend "s3" {
bucket = "cd-assets-infrastructure"
key = "terraform.tfstate"
region = "eu-central-1"
}
}
Pak už stačí nastavit tyto GitHub secrets a zbylá infrastruktura bude nasazena pomocí GitHub Action:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
DISTRIBUTION_ID
(Bude vygenerováno pomocí Terraform)DOMAIN
SSL_CERTIFICATE_ARN
(Nutné vygenerovat pomocí AWS Certificate Manager)
Veškeré změny infrastruktury by měly probíhat odděleně od změn obsahu. Tedy nejprve vytvořit pull request se změnou konfigurace infrastruktury, počkat na aplikování a poté vytvořit nový pull request pro obsah.
Konfigurace AWS a zdroje pro synchronizaci jsou zveřejněny pod licencí MIT. Na obsah ve složce content
se může vztahovat jiná licence.
Tech leads: Matěj 'Horm' Horák, Martin Wenish