SlideShare a Scribd company logo
1 of 24
Download to read offline
www.cfengine.com
Releases
www.cfengine.com
Releases
• How do they happen?
• Sneak peek at 3.7.0
www.cfengine.com
How do releases happen?
• Why is this important?
• A significant change since 3.6.0
• What can be expected from:
– New releases
– Release schedule
www.cfengine.com
Versions
• The 3.6 series (maintenance releases)
– Stable series
– Only bug fixes and small optimizations
– No new features
• The 3.7 series (next feature release)
– The place for development
– New features
– Bigger rewrites and optimizations
– Once released it becomes new stable series
www.cfengine.com
What is a feature?
• Anything that changes:
– Syntax
– Behavior (other than simple bugs)
– Storage format
– Network protocol
– Query API (Enterprise)
• Not a feature:
– Additions to masterfiles that are syntax compatible
– Support for a new platform
www.cfengine.com
Version focus
• Focusing on 3.6 right now
– Getting a stable base to work on
– A lot of focus on tests
– Platform support
• Focus will then shift to 3.7
– Most likely 2015 Q1 or early Q2
– Scope will still be smaller than previous
feature releases
www.cfengine.com
Release timing
• Time based releases
– Every six weeks a new release
– Changes not ready will wait for the next
• Aiming for eight releases per year
– Two feature releases
– The rest maintenance releases
• It's a guideline, not a hard deadline
www.cfengine.com
The release
• Community release candidate one
week before
– Feature releases may get it earlier (not
decided yet)
• Community and Enterprise released
at the same time
www.cfengine.com
New features in 3.7.0
• Coming features
• Features being considered
www.cfengine.com
Coming features
• Improved logging format
• YAML support
• New functions
www.cfengine.com
Improved logging format
• 3.6 logs:
2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/
'any'/default/cfe_internal_log_rotation/methods: Evaluating promise
'rotate_outputs'
2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/
'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'[0]: Comment
'Delete outputs/* files older than 30 days'
2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/
'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir
: Augment scope 'prunedir' with variable 'dir' (type: s)
2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/
'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir
: Augment scope 'prunedir' with variable 'max_days' (type: s)
2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/
'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir
: Evaluating bundle pass 1
2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/
'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir
/files: Evaluating promise '$(dir)'
...
www.cfengine.com
Improved logging format
• 3.7 logs:
P: .........................................................
P: BEGIN un-named promise of type "methods" (pass 1)
P: Promiser/affected object: 'rotate_outputs'
P: From parameterized bundle:
cfe_internal_log_rotation( {'@(def.cfe_log_dirs)','30'})
P: Base context class: cfengine_internal_rotate_logs
P: Container path :
'/default/cfe_internal_management/methods/'any'/default/cfe_internal_log_rotation/m
ethods/'rotate_outputs'[0]: '
P:
P: Comment: Delete outputs/* files older than 30 days
P: .........................................................
B: *****************************************************************
B: BEGIN bundle prunedir( {'@(def.cfe_log_dirs)','30'})
B: *****************************************************************
... Other promises and messages ...
A: Promise was KEPT
P: END methods promise (rotate_outputs...)
www.cfengine.com
Improved logging format
• Headers
• Grouping
• Message type prefixes
– Ex. “C:” for classes, “B:” for bundles
• No timestamps
– Can be turned on though
www.cfengine.com
YAML support
• YAML extends JSON
– Valid JSON is also valid YAML
• More human readable
• CFEngine implements YAML support
through functions:
– parseyaml
– readyaml
www.cfengine.com
YAML support
• JSON: • YAML:
{
name: “John Smith”,
possessions: [
“House”,
“Car”
]
}
name: John Smith
possessions:
- House
- Car
www.cfengine.com
New functions
• expandrange
– Generate ranges of numbers
• file_hash
– Compute hash of a file of a given type
• readcsv
– Read CSV from a file
– Similar to data_readstringarrayidx, but
parsed according to RFC 4180
www.cfengine.com
Minor additions
• Simplified methods promises
methods:
“mypromise” usebundle => “mybundle”; # <-- This is equivalent
“mybundle”; TODO # <-- to this
• Shortened ifvarclass
vars:
“var1” string => “1”
ifvarclass => “linux”; # <-- This is equivalent
“var1” string => “1”
if => “linux”; # <-- to this
“var1” string => “1”
ifvarclass => “!linux”; # <-- And this is equivalent
“var1” string => “1”
unless => “linux”; # <-- to this
www.cfengine.com
Features being considered
• Network promises
• SQLite databases promise backend
• Docker support in
guest_environments promises
• Redesigned packages promises
www.cfengine.com
interfaces
• Set interface properties, such as
– Link state
– IP addresses
– Bridge interfaces
– Duplex mode
– Configure OSPF
www.cfengine.com
routes
• Define pathways in the network
– Add subnets
– Define gateways to reach them
– Define interface leading to subnet
www.cfengine.com
addresses
• ARP manipulation for layer 2
tunnelling
– Give explicit MAC addresses for IP
addresses
– Quite specialized
• VXLAN is an example
www.cfengine.com
Redesigned package promise
• Too many problems with existing promise
• Redesigned promise
– Focus on main use cases
• Install latest or specific version
• Remove package
• Pin package (prevent upgrade)
• Performance
– Secondary
• Wildcards and '<', '>' version operators
www.cfengine.com
Redesigned package promise
• Rewrite the C backend
• A lot of knowledge in masterfiles
– Reuse as much as possible
– But change attributes when it makes
sense
• Keep the old C backend around for
backwards compatility
www.cfengine.com
New features in 3.7.0
• What would you like to see in 3.7?
• Discussion after

More Related Content

What's hot

Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
Bachkoutou Toutou
 
Webmin configuration in Linux
Webmin configuration in LinuxWebmin configuration in Linux
Webmin configuration in Linux
Thamizharasan P
 

What's hot (20)

SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
 
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
SaltConf14 - Ryan Lane, Wikimedia - Immediate consistency with Trebuchet Depl...
 
Releases - CFEngine presentation - Configuration Management Camp 2015
Releases - CFEngine presentation - Configuration Management Camp 2015Releases - CFEngine presentation - Configuration Management Camp 2015
Releases - CFEngine presentation - Configuration Management Camp 2015
 
Smuggling TCP traffic through HTTP
Smuggling TCP traffic through HTTPSmuggling TCP traffic through HTTP
Smuggling TCP traffic through HTTP
 
Blackfire
BlackfireBlackfire
Blackfire
 
How to install and configure LEMP stack
How to install and configure LEMP stackHow to install and configure LEMP stack
How to install and configure LEMP stack
 
Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015Your Inner Sysadmin - MidwestPHP 2015
Your Inner Sysadmin - MidwestPHP 2015
 
Stress Free Deployment - Confoo 2011
Stress Free Deployment  - Confoo 2011Stress Free Deployment  - Confoo 2011
Stress Free Deployment - Confoo 2011
 
Upgrading from CFEngine2 to CFEngine3 - Webinar Slides
Upgrading from CFEngine2 to CFEngine3 - Webinar SlidesUpgrading from CFEngine2 to CFEngine3 - Webinar Slides
Upgrading from CFEngine2 to CFEngine3 - Webinar Slides
 
Webmin configuration in Linux
Webmin configuration in LinuxWebmin configuration in Linux
Webmin configuration in Linux
 
Bluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web ApplicationBluemix - Deploying a Java Web Application
Bluemix - Deploying a Java Web Application
 
Improve ColdFusion Performance by tuning the Connector and using ColdFusion-T...
Improve ColdFusion Performance by tuning the Connector and using ColdFusion-T...Improve ColdFusion Performance by tuning the Connector and using ColdFusion-T...
Improve ColdFusion Performance by tuning the Connector and using ColdFusion-T...
 
Pinto+Stratopan+Love
Pinto+Stratopan+LovePinto+Stratopan+Love
Pinto+Stratopan+Love
 
How to install squid proxy on server or how to install squid proxy on centos o
How to install squid proxy on server  or how to install squid proxy on centos oHow to install squid proxy on server  or how to install squid proxy on centos o
How to install squid proxy on server or how to install squid proxy on centos o
 
Upgrade HCL Sametime server 11.0 to 11.5
Upgrade HCL Sametime server 11.0 to 11.5Upgrade HCL Sametime server 11.0 to 11.5
Upgrade HCL Sametime server 11.0 to 11.5
 
HCL Sametime Meetings 11.5 Pre-Release - Step-by-Step
HCL Sametime Meetings 11.5 Pre-Release - Step-by-StepHCL Sametime Meetings 11.5 Pre-Release - Step-by-Step
HCL Sametime Meetings 11.5 Pre-Release - Step-by-Step
 
Control your deployments with Capistrano
Control your deployments with CapistranoControl your deployments with Capistrano
Control your deployments with Capistrano
 
Reverse Installing CPAN
Reverse Installing CPANReverse Installing CPAN
Reverse Installing CPAN
 
Composer Power User Tips
Composer Power User TipsComposer Power User Tips
Composer Power User Tips
 
Bareon functional testing ci
Bareon functional testing   ciBareon functional testing   ci
Bareon functional testing ci
 

Similar to Cfg Mgmtcamp 2015 - Releases

Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administrators
Sharon James
 

Similar to Cfg Mgmtcamp 2015 - Releases (20)

2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
2018 - CertiFUNcation - Marcus Schwemer: TYPO3 Performance
 
Unbreakable Sharepoint 2016 With SQL Server 2016 availability groups
Unbreakable Sharepoint 2016 With SQL Server 2016 availability groupsUnbreakable Sharepoint 2016 With SQL Server 2016 availability groups
Unbreakable Sharepoint 2016 With SQL Server 2016 availability groups
 
Soccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM ConnectionsSoccnx10: Best and worst practices deploying IBM Connections
Soccnx10: Best and worst practices deploying IBM Connections
 
SPSMUC22 - SharePoint Patching Demystified
SPSMUC22 - SharePoint Patching DemystifiedSPSMUC22 - SharePoint Patching Demystified
SPSMUC22 - SharePoint Patching Demystified
 
Best And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM ConnectionsBest And Worst Practices Deploying IBM Connections
Best And Worst Practices Deploying IBM Connections
 
Year in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product UpdatesYear in Review: Perforce 2014 Product Updates
Year in Review: Perforce 2014 Product Updates
 
Cognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksCognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & Tricks
 
Training Slides: Advanced 304: Upgrading From Native MySQL Replication To Tun...
Training Slides: Advanced 304: Upgrading From Native MySQL Replication To Tun...Training Slides: Advanced 304: Upgrading From Native MySQL Replication To Tun...
Training Slides: Advanced 304: Upgrading From Native MySQL Replication To Tun...
 
Getting started with CFEngine - Webinar
Getting started with CFEngine - WebinarGetting started with CFEngine - Webinar
Getting started with CFEngine - Webinar
 
Sa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administratorsSa106 – practical solutions for connections administrators
Sa106 – practical solutions for connections administrators
 
Unbreakable SharePoint 2016 with SQL Server 2016 Always On Availability groups
Unbreakable SharePoint 2016 with SQL Server 2016 Always On Availability groupsUnbreakable SharePoint 2016 with SQL Server 2016 Always On Availability groups
Unbreakable SharePoint 2016 with SQL Server 2016 Always On Availability groups
 
Solution Manager 7.2 SAP Monitoring - Part 3 - Managed System Configuration
Solution Manager 7.2 SAP Monitoring - Part 3 - Managed System ConfigurationSolution Manager 7.2 SAP Monitoring - Part 3 - Managed System Configuration
Solution Manager 7.2 SAP Monitoring - Part 3 - Managed System Configuration
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013
 
[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd[2C4]Clustered computing with CoreOS, fleet and etcd
[2C4]Clustered computing with CoreOS, fleet and etcd
 
Social Connections 13 - Troubleshooting Connections Pink
Social Connections 13 - Troubleshooting Connections PinkSocial Connections 13 - Troubleshooting Connections Pink
Social Connections 13 - Troubleshooting Connections Pink
 
Logs aggregation and analysis
Logs aggregation and analysisLogs aggregation and analysis
Logs aggregation and analysis
 
MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012MariaDB 5.5 and what comes next - Percona Live NYC 2012
MariaDB 5.5 and what comes next - Percona Live NYC 2012
 
A Deep Dive into SharePoint 2016 architecture and deployment
A Deep Dive into SharePoint 2016 architecture and deploymentA Deep Dive into SharePoint 2016 architecture and deployment
A Deep Dive into SharePoint 2016 architecture and deployment
 
Apache Cloudstack QA Strategy
Apache Cloudstack QA StrategyApache Cloudstack QA Strategy
Apache Cloudstack QA Strategy
 

More from CFEngine

More from CFEngine (6)

What's new in CFEngine 3.12
What's new in CFEngine 3.12What's new in CFEngine 3.12
What's new in CFEngine 3.12
 
Webinar: Drive Financial Services Innovation Through IT Automation
Webinar: Drive Financial Services Innovation Through IT AutomationWebinar: Drive Financial Services Innovation Through IT Automation
Webinar: Drive Financial Services Innovation Through IT Automation
 
Introduction to CFEngine Enterprise 3.6.0 Webinar
Introduction to CFEngine Enterprise 3.6.0 WebinarIntroduction to CFEngine Enterprise 3.6.0 Webinar
Introduction to CFEngine Enterprise 3.6.0 Webinar
 
Getting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated VersionGetting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated Version
 
IT Automation With CFEngine - Business Value and Basic Concepts
IT Automation With CFEngine - Business Value and Basic ConceptsIT Automation With CFEngine - Business Value and Basic Concepts
IT Automation With CFEngine - Business Value and Basic Concepts
 
CFEngine Presentation at Taos
CFEngine Presentation at TaosCFEngine Presentation at Taos
CFEngine Presentation at Taos
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

Cfg Mgmtcamp 2015 - Releases

  • 2. www.cfengine.com Releases • How do they happen? • Sneak peek at 3.7.0
  • 3. www.cfengine.com How do releases happen? • Why is this important? • A significant change since 3.6.0 • What can be expected from: – New releases – Release schedule
  • 4. www.cfengine.com Versions • The 3.6 series (maintenance releases) – Stable series – Only bug fixes and small optimizations – No new features • The 3.7 series (next feature release) – The place for development – New features – Bigger rewrites and optimizations – Once released it becomes new stable series
  • 5. www.cfengine.com What is a feature? • Anything that changes: – Syntax – Behavior (other than simple bugs) – Storage format – Network protocol – Query API (Enterprise) • Not a feature: – Additions to masterfiles that are syntax compatible – Support for a new platform
  • 6. www.cfengine.com Version focus • Focusing on 3.6 right now – Getting a stable base to work on – A lot of focus on tests – Platform support • Focus will then shift to 3.7 – Most likely 2015 Q1 or early Q2 – Scope will still be smaller than previous feature releases
  • 7. www.cfengine.com Release timing • Time based releases – Every six weeks a new release – Changes not ready will wait for the next • Aiming for eight releases per year – Two feature releases – The rest maintenance releases • It's a guideline, not a hard deadline
  • 8. www.cfengine.com The release • Community release candidate one week before – Feature releases may get it earlier (not decided yet) • Community and Enterprise released at the same time
  • 9. www.cfengine.com New features in 3.7.0 • Coming features • Features being considered
  • 10. www.cfengine.com Coming features • Improved logging format • YAML support • New functions
  • 11. www.cfengine.com Improved logging format • 3.6 logs: 2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/ 'any'/default/cfe_internal_log_rotation/methods: Evaluating promise 'rotate_outputs' 2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/ 'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'[0]: Comment 'Delete outputs/* files older than 30 days' 2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/ 'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir : Augment scope 'prunedir' with variable 'dir' (type: s) 2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/ 'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir : Augment scope 'prunedir' with variable 'max_days' (type: s) 2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/ 'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir : Evaluating bundle pass 1 2015-01-29T13:05:45+0100 verbose: /default/cfe_internal_management/methods/ 'any'/default/cfe_internal_log_rotation/methods/'rotate_outputs'/default/prunedir /files: Evaluating promise '$(dir)' ...
  • 12. www.cfengine.com Improved logging format • 3.7 logs: P: ......................................................... P: BEGIN un-named promise of type "methods" (pass 1) P: Promiser/affected object: 'rotate_outputs' P: From parameterized bundle: cfe_internal_log_rotation( {'@(def.cfe_log_dirs)','30'}) P: Base context class: cfengine_internal_rotate_logs P: Container path : '/default/cfe_internal_management/methods/'any'/default/cfe_internal_log_rotation/m ethods/'rotate_outputs'[0]: ' P: P: Comment: Delete outputs/* files older than 30 days P: ......................................................... B: ***************************************************************** B: BEGIN bundle prunedir( {'@(def.cfe_log_dirs)','30'}) B: ***************************************************************** ... Other promises and messages ... A: Promise was KEPT P: END methods promise (rotate_outputs...)
  • 13. www.cfengine.com Improved logging format • Headers • Grouping • Message type prefixes – Ex. “C:” for classes, “B:” for bundles • No timestamps – Can be turned on though
  • 14. www.cfengine.com YAML support • YAML extends JSON – Valid JSON is also valid YAML • More human readable • CFEngine implements YAML support through functions: – parseyaml – readyaml
  • 15. www.cfengine.com YAML support • JSON: • YAML: { name: “John Smith”, possessions: [ “House”, “Car” ] } name: John Smith possessions: - House - Car
  • 16. www.cfengine.com New functions • expandrange – Generate ranges of numbers • file_hash – Compute hash of a file of a given type • readcsv – Read CSV from a file – Similar to data_readstringarrayidx, but parsed according to RFC 4180
  • 17. www.cfengine.com Minor additions • Simplified methods promises methods: “mypromise” usebundle => “mybundle”; # <-- This is equivalent “mybundle”; TODO # <-- to this • Shortened ifvarclass vars: “var1” string => “1” ifvarclass => “linux”; # <-- This is equivalent “var1” string => “1” if => “linux”; # <-- to this “var1” string => “1” ifvarclass => “!linux”; # <-- And this is equivalent “var1” string => “1” unless => “linux”; # <-- to this
  • 18. www.cfengine.com Features being considered • Network promises • SQLite databases promise backend • Docker support in guest_environments promises • Redesigned packages promises
  • 19. www.cfengine.com interfaces • Set interface properties, such as – Link state – IP addresses – Bridge interfaces – Duplex mode – Configure OSPF
  • 20. www.cfengine.com routes • Define pathways in the network – Add subnets – Define gateways to reach them – Define interface leading to subnet
  • 21. www.cfengine.com addresses • ARP manipulation for layer 2 tunnelling – Give explicit MAC addresses for IP addresses – Quite specialized • VXLAN is an example
  • 22. www.cfengine.com Redesigned package promise • Too many problems with existing promise • Redesigned promise – Focus on main use cases • Install latest or specific version • Remove package • Pin package (prevent upgrade) • Performance – Secondary • Wildcards and '<', '>' version operators
  • 23. www.cfengine.com Redesigned package promise • Rewrite the C backend • A lot of knowledge in masterfiles – Reuse as much as possible – But change attributes when it makes sense • Keep the old C backend around for backwards compatility
  • 24. www.cfengine.com New features in 3.7.0 • What would you like to see in 3.7? • Discussion after