SlideShare a Scribd company logo
1 of 21
Download to read offline
Configuration Management Initiative 2.0
updates
Fabian Bircher
Senior Developer @ Nuvole
Fabian Bircher
@fabianbircher @nuvoleweb
bircher
Nuvole
Distributed team in Italy, Belgium and Czech Republic
International Organisations & Institutions
Fast delivery: Several developers working simultaneously on the same
project, automated tests, frequent configuration changes ➟ Need safe
workflow
pioneers with configuration management
Session Outline
● Introduction
● Brief History
● CMI 2.0 focus points
● Concepts
● New event / example subscriber
● Next steps
● You and CMI 2.0
CMI 1.0
New in Drupal 8.0
Declarative configuration
Workflow for most common need:
Only for staging and deploying of configuration of the same site, as is, without modification.
Let contrib figure out how to solve other challenges.
Contrib modules (CMI 1½)
Config Update (37’183)
Config Filter (26’575)
Config Split (19’015)
Config Ignore (16’856)
Config Read-only (4’469)
Features* (22’052)
CMI 2.0
● Documentation
○ Users: How to use the tools
○ Developers: How to extend and use the API
● Environment specific configuration (D8.8)
○ Extending currently supported workflow
● Cross site configuration workflows (D9)
○ Distributions / Drupal as a product #3004662
CMI 2.0 organisation
Alex Pott (alexpott)
Fabian Bircher (bircher)
bi-weekly meeting at 17:00 CET (~11:00 EST) on Slack #config
https://www.drupal.org/project/cmi2
Drupal 8.6
Installing a site given a set of configuration!
● Define config/sync in settings.php, option to install via config
● A config/sync folder within a custom profile
● drush site:install --existing-config (drush 9.4+)
Still outstanding: Profiles with hook_install
Small steps with incremental improvements to keep complexity at bay.
Help out: #2982052
Drupal 8.8
A Config Export Storage for standardizing how config is exported (done!)
Config Storage Transform events / subscribers
Config Environment module (experimental)
Config directory in settings #2980712
Schema - basic workflow
active config storage service sync storage service
export
import
read
*with overrides
read/write
CMI 1.0
Allows most advanced use cases
active config storage service filtered sync storage service
export
import
read
*with overrides
read/write
Contrib API - Config Filter ("CMI 1.5")
Config Filter in core?
Current API*: Config Filter
+ Many contrib modules enhance workflow
See slides from DrupalCon Vienna session for details.
- Plugins with many methods.
- Requires knowledge on how storage is used for import/export.
Config Storage Transformer
New core API (8.8-dev)
Accomplish what Config Filter did, but better
Event based
Transform storage used for importing/exporting.
Useful everytime a config store is used.
#3047812
New API interacting with workflow
active config storage service sync storage service
filtered/transformed export
filtered/transformed import
read
*with overrides
read/write
Config Transformer
Config Split ("CMI 1.5")
De-facto standard for environment specific modules
● Directory to which configuration is split off
● List of modules and config to split off
● Active/inactive based on config override in settings.php
Split and Merge happen during import and export,
active config is not changed
Simple idea, lots of different possible applications
Some limitations due to the api.
Config Environment
Experimental core module for 8.8-dev
Uses Config Storage Transformer events
Allows "environments" to be defined (default, dev, stage, prod...)
Specify list of modules enable and configuration changes.
Switch between environments via UI and/or command line.
Only a single environment can be active.
#3028179
Changing Environments
Isn't just a simple javascript flag
Switching environments can cause modules to be installed/uninstalled
Deploy from one environment to another (dev -> stage -> prod)
Set desired environment in settings.php? (based on env vars)
or, add an additional command to a deploy script (drush, etc)
Copy DB from Prod to Dev: Prod is active environment in DB
switch to Dev via command line or UI
How deep is the rabbit hole?
What about people who use the zip archive?
What about using a database dump from
production?
What about translations?
What about updates?
What about config changes on production?
Summary - call to action
What did we learn in the past year with CMI 2?
Use config split today (ideally with one active split per environment)
Help with documentation!
New core apis are coming... but need time and lots of effort.
CMI 2.0 Sprint today and Friday!!
WHAT DID YOU THINK?
Locate this session at the Drupal Developer Days Transylvania 2019 website:
https://cluj2019.drupaldays.org/schedule
Take the survey!
https://www.surveymonkey.com/r/drupaltransylvania
THANK YOU!

More Related Content

What's hot

Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
Igalia
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
Chauvin Mariot
 

What's hot (20)

HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium project
 
Media handling in Drupal (Drupalcamp Leuven 2013)
Media handling in Drupal (Drupalcamp Leuven 2013)Media handling in Drupal (Drupalcamp Leuven 2013)
Media handling in Drupal (Drupalcamp Leuven 2013)
 
LCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDKLCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDK
 
São Paulo MuleSoft Meetup - 31 Jan
São Paulo MuleSoft Meetup - 31 JanSão Paulo MuleSoft Meetup - 31 Jan
São Paulo MuleSoft Meetup - 31 Jan
 
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
Deploying an Open Source DAM in SAAS Mode (European Drupal Days 2015)
 
Drupal in-depth
Drupal in-depthDrupal in-depth
Drupal in-depth
 
Reaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkitReaching the multimedia web from embedded platforms with WPEWebkit
Reaching the multimedia web from embedded platforms with WPEWebkit
 
Drupal Camp Atlanta 2015 - No Code Content Migration
Drupal Camp Atlanta 2015 -  No Code Content MigrationDrupal Camp Atlanta 2015 -  No Code Content Migration
Drupal Camp Atlanta 2015 - No Code Content Migration
 
Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012
 
#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)
#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)
#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)
 
Yet Another Drupal Development/Deployment Presentation
Yet Another Drupal Development/Deployment PresentationYet Another Drupal Development/Deployment Presentation
Yet Another Drupal Development/Deployment Presentation
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
 
Tdc2014 tizen common_20140603
Tdc2014 tizen common_20140603Tdc2014 tizen common_20140603
Tdc2014 tizen common_20140603
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
 
Speedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 MinutesSpeedrun: Build a Website with Panels, Media, and More in 45 Minutes
Speedrun: Build a Website with Panels, Media, and More in 45 Minutes
 
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
Pairing WebKit and Wayland for Linux-Based Embedded Web Content Presentation ...
 
Drupal migrations in 2018 - presentation at DrupalCon in Nashville
Drupal migrations in 2018 - presentation at DrupalCon in NashvilleDrupal migrations in 2018 - presentation at DrupalCon in Nashville
Drupal migrations in 2018 - presentation at DrupalCon in Nashville
 

Similar to CMI 2.0 session at Drupal DevDays in Cluj-Napoca

Similar to CMI 2.0 session at Drupal DevDays in Cluj-Napoca (20)

Odo improving the developer experience on OpenShift - hack & sangria
Odo   improving the developer experience on OpenShift - hack & sangriaOdo   improving the developer experience on OpenShift - hack & sangria
Odo improving the developer experience on OpenShift - hack & sangria
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Pivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October ReleasePivotal Platform: A First Look at the October Release
Pivotal Platform: A First Look at the October Release
 
Weave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any KubernetesWeave GitOps - continuous delivery for any Kubernetes
Weave GitOps - continuous delivery for any Kubernetes
 
DevOps-Ebook
DevOps-EbookDevOps-Ebook
DevOps-Ebook
 
CICD_BestPractices.pdf
CICD_BestPractices.pdfCICD_BestPractices.pdf
CICD_BestPractices.pdf
 
Edureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdfEdureka-DevOps-Ebook.pdf
Edureka-DevOps-Ebook.pdf
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Automated Provisioning, Management & Cost Control for Kubernetes Clusters
Automated Provisioning, Management & Cost Control for Kubernetes ClustersAutomated Provisioning, Management & Cost Control for Kubernetes Clusters
Automated Provisioning, Management & Cost Control for Kubernetes Clusters
 
Kubexperience intro session
Kubexperience intro sessionKubexperience intro session
Kubexperience intro session
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
Observe and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git opsObserve and command your fleets across any kubernetes with weave git ops
Observe and command your fleets across any kubernetes with weave git ops
 
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with ConcourseContinuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
Continuous Delivery: Fly the Friendly CI in Pivotal Cloud Foundry with Concourse
 
Devops course content
Devops course contentDevops course content
Devops course content
 
Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)Avoid the Vendor Lock-in Trap (with App Deployment)
Avoid the Vendor Lock-in Trap (with App Deployment)
 
Better code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloudBetter code, faster with kubernetes in google cloud
Better code, faster with kubernetes in google cloud
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to Kubernetes
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
 
Devops phase-1
Devops phase-1Devops phase-1
Devops phase-1
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 

More from Nuvole

Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Nuvole
 
Automating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondAutomating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyond
Nuvole
 
Extending and Customizing Open Atrium
Extending and Customizing Open AtriumExtending and Customizing Open Atrium
Extending and Customizing Open Atrium
Nuvole
 
Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7
Nuvole
 
Features based development workflow
Features based development workflowFeatures based development workflow
Features based development workflow
Nuvole
 

More from Nuvole (13)

Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.
 
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
Introducing the UI Patterns module: use atomic UI components everywhere in Dr...
 
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with FeaturesDrupal 8 Configuration Management with Features
Drupal 8 Configuration Management with Features
 
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
 
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
 
Automating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondAutomating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyond
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
 
Remote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open AtriumRemote Collaboration and Institutional Intranets with Drupal and Open Atrium
Remote Collaboration and Institutional Intranets with Drupal and Open Atrium
 
Public Works Monitoring
Public Works MonitoringPublic Works Monitoring
Public Works Monitoring
 
Extending and Customizing Open Atrium
Extending and Customizing Open AtriumExtending and Customizing Open Atrium
Extending and Customizing Open Atrium
 
Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7Code driven development: using Features effectively in Drupal 6 and 7
Code driven development: using Features effectively in Drupal 6 and 7
 
Features based development workflow
Features based development workflowFeatures based development workflow
Features based development workflow
 
First Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven DevelopmentFirst Steps in Drupal Code Driven Development
First Steps in Drupal Code Driven Development
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

CMI 2.0 session at Drupal DevDays in Cluj-Napoca

  • 1. Configuration Management Initiative 2.0 updates Fabian Bircher
  • 2. Senior Developer @ Nuvole Fabian Bircher @fabianbircher @nuvoleweb bircher
  • 3. Nuvole Distributed team in Italy, Belgium and Czech Republic International Organisations & Institutions Fast delivery: Several developers working simultaneously on the same project, automated tests, frequent configuration changes ➟ Need safe workflow pioneers with configuration management
  • 4. Session Outline ● Introduction ● Brief History ● CMI 2.0 focus points ● Concepts ● New event / example subscriber ● Next steps ● You and CMI 2.0
  • 5. CMI 1.0 New in Drupal 8.0 Declarative configuration Workflow for most common need: Only for staging and deploying of configuration of the same site, as is, without modification. Let contrib figure out how to solve other challenges.
  • 6. Contrib modules (CMI 1½) Config Update (37’183) Config Filter (26’575) Config Split (19’015) Config Ignore (16’856) Config Read-only (4’469) Features* (22’052)
  • 7. CMI 2.0 ● Documentation ○ Users: How to use the tools ○ Developers: How to extend and use the API ● Environment specific configuration (D8.8) ○ Extending currently supported workflow ● Cross site configuration workflows (D9) ○ Distributions / Drupal as a product #3004662
  • 8. CMI 2.0 organisation Alex Pott (alexpott) Fabian Bircher (bircher) bi-weekly meeting at 17:00 CET (~11:00 EST) on Slack #config https://www.drupal.org/project/cmi2
  • 9. Drupal 8.6 Installing a site given a set of configuration! ● Define config/sync in settings.php, option to install via config ● A config/sync folder within a custom profile ● drush site:install --existing-config (drush 9.4+) Still outstanding: Profiles with hook_install Small steps with incremental improvements to keep complexity at bay. Help out: #2982052
  • 10. Drupal 8.8 A Config Export Storage for standardizing how config is exported (done!) Config Storage Transform events / subscribers Config Environment module (experimental) Config directory in settings #2980712
  • 11. Schema - basic workflow active config storage service sync storage service export import read *with overrides read/write CMI 1.0
  • 12. Allows most advanced use cases active config storage service filtered sync storage service export import read *with overrides read/write Contrib API - Config Filter ("CMI 1.5")
  • 13. Config Filter in core? Current API*: Config Filter + Many contrib modules enhance workflow See slides from DrupalCon Vienna session for details. - Plugins with many methods. - Requires knowledge on how storage is used for import/export.
  • 14. Config Storage Transformer New core API (8.8-dev) Accomplish what Config Filter did, but better Event based Transform storage used for importing/exporting. Useful everytime a config store is used. #3047812
  • 15. New API interacting with workflow active config storage service sync storage service filtered/transformed export filtered/transformed import read *with overrides read/write Config Transformer
  • 16. Config Split ("CMI 1.5") De-facto standard for environment specific modules ● Directory to which configuration is split off ● List of modules and config to split off ● Active/inactive based on config override in settings.php Split and Merge happen during import and export, active config is not changed Simple idea, lots of different possible applications Some limitations due to the api.
  • 17. Config Environment Experimental core module for 8.8-dev Uses Config Storage Transformer events Allows "environments" to be defined (default, dev, stage, prod...) Specify list of modules enable and configuration changes. Switch between environments via UI and/or command line. Only a single environment can be active. #3028179
  • 18. Changing Environments Isn't just a simple javascript flag Switching environments can cause modules to be installed/uninstalled Deploy from one environment to another (dev -> stage -> prod) Set desired environment in settings.php? (based on env vars) or, add an additional command to a deploy script (drush, etc) Copy DB from Prod to Dev: Prod is active environment in DB switch to Dev via command line or UI
  • 19. How deep is the rabbit hole? What about people who use the zip archive? What about using a database dump from production? What about translations? What about updates? What about config changes on production?
  • 20. Summary - call to action What did we learn in the past year with CMI 2? Use config split today (ideally with one active split per environment) Help with documentation! New core apis are coming... but need time and lots of effort. CMI 2.0 Sprint today and Friday!!
  • 21. WHAT DID YOU THINK? Locate this session at the Drupal Developer Days Transylvania 2019 website: https://cluj2019.drupaldays.org/schedule Take the survey! https://www.surveymonkey.com/r/drupaltransylvania THANK YOU!