Nasazení FOLIO (Proxmox VE + k3s)
IaC a Helm stack pro on-prem FOLIO Library Services Platform na HA k3s clusteru ve VM na Proxmox VE. Repozitář: gitlab.arteg.cz/petr/folio.
Stack v repu cílí na klasické Okapi + Stripes + backend moduly. Novější řady FOLIO (od Sunflower / Trillium) přecházejí na Eureka (Kong + Keycloak) — variantu volíme podle release a požadavků knihovny. Eureka poznámky: folio/values/eureka/README.md.
Architektura (výchozí lab / start)
Uživatelé → HTTPS → ingress-nginx + cert-manager → UI + API gateway / Okapi → FOLIO moduly → PostgreSQL / Kafka / OpenSearch / MinIO.
Výchozí: PostgreSQL, OpenSearch a Kafka běží uvnitř k3s (enable_db_node = false). Stateful data dejte na rychlé úložiště (NVMe/SSD).
| Role | Počet | vCPU | RAM | Disk | Poznámka |
|---|---|---|---|---|---|
| k3s server (CP + worker) | 3 | 8 | 32 GB | 100 GB | embedded etcd HA |
| Dedicated DB node | 0–1 | 8 | 48 GB | 200 GB | volitelně mimo cluster |
| Proxmox overhead | — | — | ~48 GB+ | — | hypervisor |
Pro produkci doporučujeme dimenzovat hostitele podle stránky Projekt FOLIO, ne podle lab skici.
Předpoklady
Workstation (Linux, doporučeně Mint)
- Terraform ≥ 1.6, Ansible ≥ 2.15, kubectl, Helm ≥ 3.14
- curl, jq, git, bash
- Stejný SSH klíč pro Proxmox API/SSH i cloud-init VM
- ansible-galaxy collection install -r ansible/requirements.yml
Proxmox
- API (např. https://proxmox:8006/)
- Datastore disků + datastore se snippets (Cloud-Init)
- Volné IP pro 3 nody (výchozí .201–.203)
Rychlý start
git clone https://gitlab.arteg.cz/petr/folio.git cd folio chmod +x deploy.sh folio/scripts/*.sh scripts/*.sh cp terraform/terraform.tfvars.example terraform/terraform.tfvars # doplň: Proxmox heslo, SSH public key, IP, název node bash scripts/generate-secrets.sh # uprav folio/values/production.yaml → DNS # uprav infrastructure/cert-manager/cluster-issuer.yaml → e-mail # zkontroluj folio/manifests/secrets.yaml ./deploy.sh all # nebo po etapách: vms → k3s → infra → folio → register
| Příkaz | Akce |
|---|---|
| ./deploy.sh vms | Terraform: Ubuntu VM na Proxmoxu |
| ./deploy.sh k3s | Ansible: HA k3s → config/kubeconfig |
| ./deploy.sh infra | Helm: cert-manager, ingress, PostgreSQL, Kafka, OpenSearch, MinIO |
| ./deploy.sh folio | Helm: Okapi / platforma + moduly + UI |
| ./deploy.sh register | Registrace a enable tenant |
| ./deploy.sh status | Stav nodů a podů |
make folio-ext # včetně extended modulů export KUBECONFIG=$PWD/config/kubeconfig kubectl get nodes bash scripts/smoke-check.sh
Struktura repozitáře
terraform/ # VM + cloud-init + Ansible inventory ansible/ # HA k3s infrastructure/ # Helm values závislostí folio/ charts/folio-platform/ values/ # production.yaml, modules-extended.yaml manifests/ # secrets (šablony) scripts/ # register-and-enable.sh deploy.sh Makefile README.md config/ # kubeconfig (generovaný, není v gitu)
Před produkcí
- Vyměňte všechny CHANGE_ME_*
- terraform.tfvars a reálná hesla necommitujte (jsou v .gitignore)
- DNS + Let's Encrypt (nebo lab CA issuer)
- PVC: Longhorn/Ceph místo local-path
- Záloha PostgreSQL, OpenSearch a etcd/k3s
- Pin image tagů na zvolený FOLIO release
Licence modulů FOLIO patří příslušným maintainers. Repozitář obsahuje orchestrační skripty (Terraform, Ansible, Helm values) pro on-prem nasazení.