Elkészült az első sémaleírás-készlet – PostgreSQL-lel kezdtem

CIC (Central Infrastrukture Core) keretrendszer PoC-jéhez elkezdtem csinálni a schema laírásokat, nézétek meg... van benne szerintem számotokra is érdekesség:

  • egy központi meta-sémára támaszkodik,
  • automatikusan validál,
  • feloldja a referenciákat,
  • a végén pedig digitálisan aláírja a tartalmat (Vault + OpenSSL),
  • és az egész reprodukálhatóan, Dockerből fordul.

Most jutottam el az első mérföldkőig: elkészült az első sémakészlet, tesztalanynak pedig a PostgreSQL-t választottam. Egyrészt nálunk ez fut mindenhol, másrészt jó „stresszteszt” is: rengeteg paraméter, több config (postgresql.conf, pg_hba.conf, …), és bőven vannak olyan sarkok, ahol már nagyon jól jön egy gépi validátor, mielőtt a cluster felrobban.

Szerintem egészen jól sikerült jól belőni, a többi szolgáltatás sémája már sokkal simábban fog menni.

A következő lépések:

  • újabb szolgáltatások sémái,
  • tooling finomítása (már most kiderült, mi kényelmetlen),
  • dokumentáció bővítése,
  • automatikus dependency-release folyamatok.

Ha valakit érdekel a meta-séma, a compiler vagy az aláírási workflow, szívesen mesélek róla.

(repo/link: https://github.com/CentralInfraCore/CIC_Schemas)

Hozzászólások

Ez mennyire van pariban a PostgreSQL sajat konfig ellenorzesi mechanizmusaval? Lasd: https://stackoverflow.com/a/59428532/182474 

Nem lattam a kodban, hogy lenne visszateszt, hogy amit a PostgreSQL sajat maga hibanak erzekel, azt te is, es amit te annak, azt a PostgreSQL szerver is. Marpedig ez elengedhetetlen meropont lenne arra nezve, hogy amit te validnak mondasz fajl, az Postgres szerint is az lesz. 

Blog | @hron84

valahol egy üzemeltetőmaci most mérgesen toppant a lábával 

via @snq-

jelenleg nincs és öszintén köszönöm az ötletet. Ha megnézted én a 
SELECT name, short_desc, vartype, unit, min_val, max_val, enumvals, reset_val
FROM pg_settings
WHERE context <> 'internal'

lekérdezést vettem alapul öszintén nem ismertem az amit mondtál de mint fejlesztési irányt felvésem mert jó ötlet

Általában azt szoktam mondani, hogy inkább elolvasom a doksit, minthogy videót nézzek, de most kivételesen inkább nem lehetne tényleg csinálni egy tízperces screencastet, hogy

  1. ez itt az én kubernetes clusterem (vagy akármilyen infra)
  2. kellene bele pgsql
  3. így letöltöm, bekonfigurálom a CIC-t
  4. így csinálom meg a pgsql-t
  5. szándékosan belerondítok a konfigba
  6. jön az auditor, de addigra minden helyreállt, happy end