Arteg — IT technologie

← Projekt FOLIO

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).

RolePočetvCPURAMDiskPoznámka
k3s server (CP + worker)3832 GB100 GBembedded etcd HA
Dedicated DB node0–1848 GB200 GBvolitelně 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říkazAkce
./deploy.sh vmsTerraform: Ubuntu VM na Proxmoxu
./deploy.sh k3sAnsible: HA k3s → config/kubeconfig
./deploy.sh infraHelm: cert-manager, ingress, PostgreSQL, Kafka, OpenSearch, MinIO
./deploy.sh folioHelm: Okapi / platforma + moduly + UI
./deploy.sh registerRegistrace a enable tenant
./deploy.sh statusStav 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í.