Skip to content

Oplæg til konfigurationshåndtering 13. Okt. 2021

Mikkel Jakobsen edited this page Oct 13, 2021 · 1 revision

Overordnet funktionalitet/setup

Har ikke fundet en mulighed for at merge to config filer sammen på dybt niveau. Det ville ellers muliggøre at man havde to sandheder: core og lokalt for det enkelte site og så merge det sammen til en samlet konfiguration. Det ville også kun løse den del af konfigurationen der handler om nedarvning og lokal konfiguration og ikke det at man skal kunne undgå overskrivning ved import. drush cim --partial ville til dels kunne bruges, men hvis man tænker på den funktionalitet som et udviklersite ville kræve, har vi brug for noget der fuldstændigt kan override den konfiguration der måtte komme fra core.

Ud fra missonen om at kunne håndtere:

  • Global konfiguration der skal kunne rulles ud og kunne overskrives
  • Lokal konfiguration på hvert site
  • Og potentielt lokalt eksporteret konfiguration som ikke findes eller overskriver cores (udvikler sites) ...er jeg landet på et setup, hvor jeg bruger modulerne: config_split og config_split_ignore.

Config_split kan lave profiler (de hedder settings) som man kan vægte i forhold til hinanden, eller aktivere/deaktivere. Man kan konfigurere sin settings til at gemme udvalgte konfigurationsfiler ned i et subdir i config. Man kan også have et eller flere config ignore mønstre der bypasser udvalgt config i systemet. Eksempel på den fysiske config mappe struktur: core/ local/ (har præcedens over core) user.settings.yml user.settings.yml

Det at man kan ignorere configuration er interessant i forhold til vores brugsscenarier på webmaster og redaktør sites. Lad os sige at core teamet tilføjer modulet eu_cookie_compliance så hæfter de også et ignore pattern (eu_cookie_compliance*) til "core"-ignore settingen. Det gør at de enkelte sites kan konfigureres manuelt uden fare for at det bliver overskrevet.


Core konfiguration

Ved deploy af core test site køres:

drush cim

Løbende udvikling:

Ved tilføjelse af ny funktionaliteter/moduler: Core Config Split ignore settings opdateres med hvad der skal kunne editeres på redaktør/webmaster sites. drush cex køres, så konfiguration som views og andet konfiguration, der ikke hører til en modul installation, kommer ud i config/sync mappen. config/sync mappen er en del af dpl-cms-source docker image.

Redaktør konfiguration

Deploy:

drush cim

Konfigurationsfiler:

config/sync (fra dpl-cms-source)

Config ignore settings:

Er defineret i Core Config Split settings som gør at den config ikke bliver overskrevet.

Webmaster konfiguration

Deploy:

drush cim

Konfigurationsfiler:

config/sync (fra dpl-cms-source)

Config ignore settings:

Er defineret i Core Config Split settings som gør at den config ikke bliver overskrevet. Ved upload af et nyt modul opdateres Local Config Split ignore settings med det nye modul. Det gør at configen ignoreres og ikke bliver overskrevet ved næste deploy.

Udvikler konfiguration

Deploy:

drush cim

Konfigurationsfiler:

config/sync (fra dpl-cms-source) config/local (udviklersitets unikke config eller overskrivning af eksisterende)

Ved at bruge Local Config Split setting kan udvikler sitet håndtere sin config frit oven på hvad der måtte komme fra core.