SlideShare une entreprise Scribd logo
1  sur  83
What’s new in Puppet 3.0

 Eric Sorenson | Puppet Labs
 eric0@puppetlabs.com




                               presented by
What’s In this Talk?
 • Hi.
 • The Road to Telly
 • New Stuff
 • Changed Stuff
 • Future


 # puppetconf          # puppetize   @ puppetlabs
Puppet Releases over Time           3
                             2.6    2.7




       0.22   0.24   0.25
0.13


2006   2007   2008   2009   2010   2011   2012
timeline of Telly RCs by # of commits
14626




                                             8874


                                                       4905


               1341
     195                           204                           142

     -14       -73                 -130                          -137



                                             -4824




                         -10770                        -11066


3.0.0-rc1 3.0.0-rc2 3.0.0-rc3 3.0.0-rc4 3.0.0-rc5 3.0.0-rc6 3.0.0-rc7
# pluginsync improvements
# pluginsync improvements

## enabled by default
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
 # pluginsync = true
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
 # pluginsync = true

## lazy load... hard to demo
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
 # pluginsync = true

## lazy load... hard to demo

## install a Face from gems
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
 # pluginsync = true

## lazy load... hard to demo

## install a Face from gems
package { ‘puppetlabs-cloud-provisioner’:
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
 # pluginsync = true

## lazy load... hard to demo

## install a Face from gems
package { ‘puppetlabs-cloud-provisioner’:
  provider => gem,
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
 # pluginsync = true

## lazy load... hard to demo

## install a Face from gems
package { ‘puppetlabs-cloud-provisioner’:
  provider => gem,
  ensure => present
# pluginsync improvements

## enabled by default
puppet agent --genconfig | grep pluginsync
 # pluginsync = true

## lazy load... hard to demo

## install a Face from gems
package { ‘puppetlabs-cloud-provisioner’:
  provider => gem,
  ensure => present
}
# platform support
# platform support

## Ruby support cleanups
[eric@glitch ~]% rbenv version
1.9.3-p194
# platform support

## Ruby support cleanups
[eric@glitch ~]% rbenv version
1.9.3-p194

## solaris 10 & 11
puppet resource service # SMF yay
puppet resource zone # Zones yay
facter osfamily
# platform support

## Ruby support cleanups
[eric@glitch ~]% rbenv version
1.9.3-p194

## solaris 10 & 11
puppet resource service # SMF yay
puppet resource zone # Zones yay
facter osfamily

## windows msi packages
package { ‘XXX’: provider => windows }
# hiera built in
# hiera built in

## before
class ntp($ntpserver=hiera(ntp_server,
       ‘time.apple.com’)) {
   ...
}
# hiera built in

## before
class ntp($ntpserver=hiera(ntp_server,
       ‘time.apple.com’)) {
   ...
}

## after
class ntp($ntpserver) {
   ...
}
# language features
# language features

## unless
unless $operatingsystem == ‘OpenBSD’ {
# language features

## unless
unless $operatingsystem == ‘OpenBSD’ {
  notice(“Need more neckbeard!”)
}
# Language features


## unless
unless $operatingsystem == ‘OpenBSD’ {
  notice(“Need more neckbeard!”)
}
# quick WAT break
# quick WAT break

define mytype($param = “Hello”) {
  notice(“$param”)
}

mytype { “demo”: param => undef }
# quick WAT break

define mytype($param = “Hello”) {
  notice(“$param”)
}

mytype { “demo”: param => undef }

## output
# quick WAT break

define mytype($param = “Hello”) {
  notice(“$param”)
}

mytype { “demo”: param => undef }

## output
Scope(Mytype[demo]): Hello
# more WAT
# more WAT

class foo {
   $variable="CORRECT"
}
class bar::foo {
# more WAT

class foo {
   $variable="CORRECT"
}
class bar::foo {
   class { "::foo":
# more WAT

class foo {
   $variable="CORRECT"
}
class bar::foo {
   class { "::foo":
   }
# more WAT

class foo {
   $variable="CORRECT"
}
class bar::foo {
   class { "::foo":
   }
   notify { $::foo::variable: }
# more WAT

class foo {
   $variable="CORRECT"
}
class bar::foo {
   class { "::foo":
   }
   notify { $::foo::variable: }
}
# more WAT

class foo {
   $variable="CORRECT"
}
class bar::foo {
   class { "::foo":
   }
   notify { $::foo::variable: }
}
include bar::foo
presented by
presented by
[eric@glitch.local ~/Sandbox/puppet]% git diff --stat
2.7.x 3.0.0-rc7 | tail -1
 1538 files changed, 37237 insertions(+), 68982
deletions(-)




                                              presented by
1.8.5
1.8.5
# dynamic scoping is gone
# dynamic scoping is gone

class parent {
# dynamic scoping is gone

class parent {
 $var = "from parent"
# dynamic scoping is gone

class parent {
 $var = "from parent"
 include included
# dynamic scoping is gone

class parent {
  $var = "from parent"
  include included
}
# dynamic scoping is gone

class parent {
  $var = "from parent"
  include included
}

class included {
# dynamic scoping is gone

class parent {
  $var = "from parent"
  include included
}

class included {
 notify { $var: } ## NOT GONNA WORK
# dynamic scoping is gone

class parent {
  $var = "from parent"
  include included
}

class included {
 notify { $var: } ## NOT GONNA WORK
 notify { $parent::var: } ## YUP
# dynamic scoping is gone

class parent {
  $var = "from parent"
  include included
}

class included {
  notify { $var: } ## NOT GONNA WORK
  notify { $parent::var: } ## YUP
}
53 3910 - Server is not authoritative over client environment when specified in an ENC -- Fixed in Telly
    35 2198 - Install multiple package within a single call to the package manager -- Was patched against 0.24 and never merged
    31 4409 - puppetmasterd does not find custom types for environment -- fixed in #13858
    30 3741 - Custom facts loaded multiple times -- Fixed in telly
    27 5517 - behavior change within 2.6 makes it impossible to override class parameters of "included" parametrized classes -- Early evaluation w/
'include foo' meant we need early evaluation with class { 'foo': }
    27 2977 - Postgres backend for dashboard
    27 10418 - Puppet agent hangs when listen is true and reading from /proc filesystem on redhat -- Tracked down to specific files in /proc like
mounts -- fixed in Facter 1.6.12.
    26 8040 - Anchor pattern -- Graph should include containment relationships and not whits
    26 5783 - Support HTTP(S) URL as the file 'source' -- No action
    26 2247 - enablerepo and disablerepo for yum type -- dup of 4113 (provider-specific options)
    24 1886 - Add node cleanup capability -- Complete
    24 12173 - Masters cannot reliably distinguish between multiple versions of a type/function/plugin used in different environments -- Needs
process-per-environment.
    23 5158 - File resources: Make source/content parameters and the file/template functions consistent. -- No action
presented by
The Road Ahead
The Road Ahead
• Continued focus on quality
The Road Ahead
• Continued focus on quality
• Settings and Code Loading
The Road Ahead
• Continued focus on quality
• Settings and Code Loading
• Slimmer Core, More Modules
The Road Ahead
• Continued focus on quality
• Settings and Code Loading
• Slimmer Core, More Modules
• Themed Feature Releases in 3.x
The Road Ahead
• Continued focus on quality
• Settings and Code Loading
• Slimmer Core, More Modules
• Themed Feature Releases in 3.x
• Driven by User Testing
presented by
presented by
• Download it.




                 presented by
• Download it.
• Run it.




                 presented by
• Download it.
• Run it.
• File bugs.




                 presented by
• Download it.
• Run it.
• File bugs.
• Tell us what you think.


                            presented by
Thank You
Eric Sorenson | twitter: @ahpook | irc: eric0
eric0@puppetlabs.com




                                                presented by
e   follow us on Twitter @puppetlabs

m   youtube.com/puppetlabsinc


p   slideshare.net/puppetlabs




                                  presented by

Contenu connexe

Similaire à What's new in Puppet 3.0

A Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to GoA Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to GoMatt Stine
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringAlessandro Franceschi
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future TenseEric Sorenson
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPhil Zimmerman
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Extensions on PostgreSQL
Extensions on PostgreSQLExtensions on PostgreSQL
Extensions on PostgreSQLAlpaca
 
Docker Demo @ IuK Seminar
Docker Demo @ IuK SeminarDocker Demo @ IuK Seminar
Docker Demo @ IuK SeminarMartin Scharm
 
Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014Puppet
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"Daniel Bryant
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetWalter Heck
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetOlinData
 
Puppet Performance Profiling
Puppet Performance ProfilingPuppet Performance Profiling
Puppet Performance Profilingripienaar
 
Design Summit - Migrating to Ruby 2 - Joe Rafaniello
Design Summit - Migrating to Ruby 2 - Joe RafanielloDesign Summit - Migrating to Ruby 2 - Joe Rafaniello
Design Summit - Migrating to Ruby 2 - Joe RafanielloManageIQ
 
2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Herokuronnywang_tw
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in RustInfluxData
 
Python在豆瓣的应用
Python在豆瓣的应用Python在豆瓣的应用
Python在豆瓣的应用Qiangning Hong
 
Advanced Topics in Continuous Deployment
Advanced Topics in Continuous DeploymentAdvanced Topics in Continuous Deployment
Advanced Topics in Continuous DeploymentMike Brittain
 

Similaire à What's new in Puppet 3.0 (20)

A Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to GoA Recovering Java Developer Learns to Go
A Recovering Java Developer Learns to Go
 
Strategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoringStrategies for Puppet code upgrade and refactoring
Strategies for Puppet code upgrade and refactoring
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 
Puppet 3: Present and Future Tense
Puppet 3: Present and Future TensePuppet 3: Present and Future Tense
Puppet 3: Present and Future Tense
 
PuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With NotesPuppetConf 2014 Killer R10K Workflow With Notes
PuppetConf 2014 Killer R10K Workflow With Notes
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Extensions on PostgreSQL
Extensions on PostgreSQLExtensions on PostgreSQL
Extensions on PostgreSQL
 
Docker Demo @ IuK Seminar
Docker Demo @ IuK SeminarDocker Demo @ IuK Seminar
Docker Demo @ IuK Seminar
 
Ruby Kaigi 2008 LT
Ruby Kaigi 2008 LTRuby Kaigi 2008 LT
Ruby Kaigi 2008 LT
 
Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
PuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of PuppetPuppetCamp SEA 1 - Use of Puppet
PuppetCamp SEA 1 - Use of Puppet
 
Puppet Performance Profiling
Puppet Performance ProfilingPuppet Performance Profiling
Puppet Performance Profiling
 
Design Summit - Migrating to Ruby 2 - Joe Rafaniello
Design Summit - Migrating to Ruby 2 - Joe RafanielloDesign Summit - Migrating to Ruby 2 - Joe Rafaniello
Design Summit - Migrating to Ruby 2 - Joe Rafaniello
 
2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku2012 coscup - Build your PHP application on Heroku
2012 coscup - Build your PHP application on Heroku
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in Rust
 
Python在豆瓣的应用
Python在豆瓣的应用Python在豆瓣的应用
Python在豆瓣的应用
 
Load testing with Blitz
Load testing with BlitzLoad testing with Blitz
Load testing with Blitz
 
Advanced Topics in Continuous Deployment
Advanced Topics in Continuous DeploymentAdvanced Topics in Continuous Deployment
Advanced Topics in Continuous Deployment
 

Dernier

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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 educationjfdjdjcjdnsjd
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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 MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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.pptxEarley Information Science
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
[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.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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 Nanonetsnaman860154
 
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...Enterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 

Dernier (20)

Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
[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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
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
 
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...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

What's new in Puppet 3.0

  • 1. What’s new in Puppet 3.0 Eric Sorenson | Puppet Labs eric0@puppetlabs.com presented by
  • 2. What’s In this Talk? • Hi. • The Road to Telly • New Stuff • Changed Stuff • Future # puppetconf # puppetize @ puppetlabs
  • 3.
  • 4.
  • 5.
  • 6. Puppet Releases over Time 3 2.6 2.7 0.22 0.24 0.25 0.13 2006 2007 2008 2009 2010 2011 2012
  • 7. timeline of Telly RCs by # of commits
  • 8. 14626 8874 4905 1341 195 204 142 -14 -73 -130 -137 -4824 -10770 -11066 3.0.0-rc1 3.0.0-rc2 3.0.0-rc3 3.0.0-rc4 3.0.0-rc5 3.0.0-rc6 3.0.0-rc7
  • 9.
  • 10.
  • 12. # pluginsync improvements ## enabled by default
  • 13. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync
  • 14. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync # pluginsync = true
  • 15. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync # pluginsync = true ## lazy load... hard to demo
  • 16. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync # pluginsync = true ## lazy load... hard to demo ## install a Face from gems
  • 17. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync # pluginsync = true ## lazy load... hard to demo ## install a Face from gems package { ‘puppetlabs-cloud-provisioner’:
  • 18. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync # pluginsync = true ## lazy load... hard to demo ## install a Face from gems package { ‘puppetlabs-cloud-provisioner’: provider => gem,
  • 19. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync # pluginsync = true ## lazy load... hard to demo ## install a Face from gems package { ‘puppetlabs-cloud-provisioner’: provider => gem, ensure => present
  • 20. # pluginsync improvements ## enabled by default puppet agent --genconfig | grep pluginsync # pluginsync = true ## lazy load... hard to demo ## install a Face from gems package { ‘puppetlabs-cloud-provisioner’: provider => gem, ensure => present }
  • 21.
  • 23. # platform support ## Ruby support cleanups [eric@glitch ~]% rbenv version 1.9.3-p194
  • 24. # platform support ## Ruby support cleanups [eric@glitch ~]% rbenv version 1.9.3-p194 ## solaris 10 & 11 puppet resource service # SMF yay puppet resource zone # Zones yay facter osfamily
  • 25. # platform support ## Ruby support cleanups [eric@glitch ~]% rbenv version 1.9.3-p194 ## solaris 10 & 11 puppet resource service # SMF yay puppet resource zone # Zones yay facter osfamily ## windows msi packages package { ‘XXX’: provider => windows }
  • 26.
  • 28. # hiera built in ## before class ntp($ntpserver=hiera(ntp_server, ‘time.apple.com’)) { ... }
  • 29. # hiera built in ## before class ntp($ntpserver=hiera(ntp_server, ‘time.apple.com’)) { ... } ## after class ntp($ntpserver) { ... }
  • 30.
  • 32. # language features ## unless unless $operatingsystem == ‘OpenBSD’ {
  • 33. # language features ## unless unless $operatingsystem == ‘OpenBSD’ { notice(“Need more neckbeard!”) }
  • 34. # Language features ## unless unless $operatingsystem == ‘OpenBSD’ { notice(“Need more neckbeard!”) }
  • 35.
  • 36. # quick WAT break
  • 37. # quick WAT break define mytype($param = “Hello”) { notice(“$param”) } mytype { “demo”: param => undef }
  • 38. # quick WAT break define mytype($param = “Hello”) { notice(“$param”) } mytype { “demo”: param => undef } ## output
  • 39. # quick WAT break define mytype($param = “Hello”) { notice(“$param”) } mytype { “demo”: param => undef } ## output Scope(Mytype[demo]): Hello
  • 40.
  • 41.
  • 43. # more WAT class foo { $variable="CORRECT" } class bar::foo {
  • 44. # more WAT class foo { $variable="CORRECT" } class bar::foo { class { "::foo":
  • 45. # more WAT class foo { $variable="CORRECT" } class bar::foo { class { "::foo": }
  • 46. # more WAT class foo { $variable="CORRECT" } class bar::foo { class { "::foo": } notify { $::foo::variable: }
  • 47. # more WAT class foo { $variable="CORRECT" } class bar::foo { class { "::foo": } notify { $::foo::variable: } }
  • 48. # more WAT class foo { $variable="CORRECT" } class bar::foo { class { "::foo": } notify { $::foo::variable: } } include bar::foo
  • 49.
  • 52. [eric@glitch.local ~/Sandbox/puppet]% git diff --stat 2.7.x 3.0.0-rc7 | tail -1 1538 files changed, 37237 insertions(+), 68982 deletions(-) presented by
  • 53.
  • 54.
  • 55.
  • 56. 1.8.5
  • 57. 1.8.5
  • 58.
  • 59. # dynamic scoping is gone
  • 60. # dynamic scoping is gone class parent {
  • 61. # dynamic scoping is gone class parent { $var = "from parent"
  • 62. # dynamic scoping is gone class parent { $var = "from parent" include included
  • 63. # dynamic scoping is gone class parent { $var = "from parent" include included }
  • 64. # dynamic scoping is gone class parent { $var = "from parent" include included } class included {
  • 65. # dynamic scoping is gone class parent { $var = "from parent" include included } class included { notify { $var: } ## NOT GONNA WORK
  • 66. # dynamic scoping is gone class parent { $var = "from parent" include included } class included { notify { $var: } ## NOT GONNA WORK notify { $parent::var: } ## YUP
  • 67. # dynamic scoping is gone class parent { $var = "from parent" include included } class included { notify { $var: } ## NOT GONNA WORK notify { $parent::var: } ## YUP }
  • 68. 53 3910 - Server is not authoritative over client environment when specified in an ENC -- Fixed in Telly 35 2198 - Install multiple package within a single call to the package manager -- Was patched against 0.24 and never merged 31 4409 - puppetmasterd does not find custom types for environment -- fixed in #13858 30 3741 - Custom facts loaded multiple times -- Fixed in telly 27 5517 - behavior change within 2.6 makes it impossible to override class parameters of "included" parametrized classes -- Early evaluation w/ 'include foo' meant we need early evaluation with class { 'foo': } 27 2977 - Postgres backend for dashboard 27 10418 - Puppet agent hangs when listen is true and reading from /proc filesystem on redhat -- Tracked down to specific files in /proc like mounts -- fixed in Facter 1.6.12. 26 8040 - Anchor pattern -- Graph should include containment relationships and not whits 26 5783 - Support HTTP(S) URL as the file 'source' -- No action 26 2247 - enablerepo and disablerepo for yum type -- dup of 4113 (provider-specific options) 24 1886 - Add node cleanup capability -- Complete 24 12173 - Masters cannot reliably distinguish between multiple versions of a type/function/plugin used in different environments -- Needs process-per-environment. 23 5158 - File resources: Make source/content parameters and the file/template functions consistent. -- No action
  • 71. The Road Ahead • Continued focus on quality
  • 72. The Road Ahead • Continued focus on quality • Settings and Code Loading
  • 73. The Road Ahead • Continued focus on quality • Settings and Code Loading • Slimmer Core, More Modules
  • 74. The Road Ahead • Continued focus on quality • Settings and Code Loading • Slimmer Core, More Modules • Themed Feature Releases in 3.x
  • 75. The Road Ahead • Continued focus on quality • Settings and Code Loading • Slimmer Core, More Modules • Themed Feature Releases in 3.x • Driven by User Testing
  • 78. • Download it. presented by
  • 79. • Download it. • Run it. presented by
  • 80. • Download it. • Run it. • File bugs. presented by
  • 81. • Download it. • Run it. • File bugs. • Tell us what you think. presented by
  • 82. Thank You Eric Sorenson | twitter: @ahpook | irc: eric0 eric0@puppetlabs.com presented by
  • 83. e follow us on Twitter @puppetlabs m youtube.com/puppetlabsinc p slideshare.net/puppetlabs presented by

Notes de l'éditeur

  1. \n
  2. \n
  3. Hi. I’m Eric aka eric0. \nproduct owner for opensource\ncfengine since 98, in awesome but failed startups\npuppet user since 0.24 at apple, an awesome sucessful non-startup\npuppet employee since june, an awesome hopefully successful startup\nlove OSS, commited to puppet becoming a real platform that enterprise and others build on\n
  4. TELLY.\nOriginally short for TELEVISION, he was totally obsessed with watching TV, with the eyeball spin & everything\nSource: http://muppet.wikia.com/wiki/Telly_Monster\n\n
  5. but according to the Muppet Wiki -- what, you dont read the Muppet wiki? -- the fact that he watched TV 3 inches from the screen was a bad example for the children.\n“Worrying, easily frustrated -- but an expert on TV and computers” COINCIDENCE?\nso they took away the TV and gave him triangles. 3 sides. Puppet 3. Coincidence? \nSource: http://muppet.wikia.com/wiki/Telly_Monster\n\n
  6. this slide’s alternate title was ‘give edward tufte an aneurysm’\nroughly yearly releases until the Great Renaming in 2010 introduced roughly 10x more puppet\nsep 2009 0.25.0 introduced REST instead of XML-RPC\njuly 2010 2.6.0 had run stages, param classes, complex data structures, and lots of syntax\njune 2011 2.7.0 introduced greater API-zation , through faces and exposing more functionality like certificates through REST\nsignificant new functionality through 2.7 series, including some surprises in minor versions.\nup to 2.7.20 now.\nnext up is 3, released this week.\n\n
  7. github graph of project growth from the start of time.\ngiant spike in july 2011 was reformatting for two space indentation.\n\n
  8. Started releasing RCs in May 2012, w/ 1,2,3 by June 1\n(I started June 27)\nQuiet until July when Stahnke posted that we were reverting from RC to development due to performance and quality problems. \n“stop the line”\nRC4 Aug 24\nRC5 Aug 29\nRC6 Sep 10\nRC7 Sep 20\nRelease Sep 25\nso what happened?\n
  9. From http://www.keepcalm-o-matic.co.uk/p/keep-calm-and-ooh-shiny/\n
  10. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  11. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  12. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  13. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  14. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  15. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  16. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  17. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  18. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  19. enabled by default to ease bootstrapping\nlazy-loaded instead of download-then-load\n`gem install` just works for Ruby extensions\nmore work to do on the code distribution story: puppet modules as 1st class distribution (package provider) and good OS citizens (reducy RUBYLIB craziness)\n
  20. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  21. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  22. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  23. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  24. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  25. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  26. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  27. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  28. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  29. ruby 1.9.3 - sorta worked on 2.7, for realz on 3. earlier 1.9, pls dont\nsolaris - smf was kinda sad, zones, pkgs meh. rahul and stefan schulte brought some much needed love to sol 11 packaging, zones -- #7175 “zones borken since 0.24.8”\nashley penney --variants like openindiana into osfamily. \n
  30. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  31. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  32. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  33. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  34. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  35. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  36. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  37. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  38. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  39. whos used hiera? heard of hiera? simple hierarchical data store for separating code from data\narri wrote it, available as add-ons since last june.\nsimplified install--4 packages to 2--auto dependencies\nsimplified usage w/ data bindings -- kelsey’s work\n
  40. if !\ninside class foo, ‘include ::bar’ used to get to foo::bar.\nquick WAT break.\n
  41. if !\ninside class foo, ‘include ::bar’ used to get to foo::bar.\nquick WAT break.\n
  42. if !\ninside class foo, ‘include ::bar’ used to get to foo::bar.\nquick WAT break.\n
  43. if !\ninside class foo, ‘include ::bar’ used to get to foo::bar.\nquick WAT break.\n
  44. if !\ninside class foo, ‘include ::bar’ used to get to foo::bar.\nquick WAT break.\n
  45. \n
  46. Gary Bernhardt on language inconsistencies at destroyallsoftware.com\n
  47. Gary Bernhardt on language inconsistencies at destroyallsoftware.com\n
  48. Gary Bernhardt on language inconsistencies at destroyallsoftware.com\n
  49. Gary Bernhardt on language inconsistencies at destroyallsoftware.com\n
  50. Gary Bernhardt on language inconsistencies at destroyallsoftware.com\n
  51. Gary Bernhardt on language inconsistencies at destroyallsoftware.com\n
  52. Gary Bernhardt on language inconsistencies at destroyallsoftware.com\n
  53. this one is preserved but i’m still not convinced it’s right. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n\nhttp://en.wikipedia.org/wiki/File:Assorted_United_States_coins.jpg\n\n\n
  66. \n
  67. \n
  68. from Greg Dallavalle at WolfNet -- early adopter because he was hurting under 2.7 and had to add a bunch more resources -- 40K managed resources -- upgraded to telly RC6 and boom, all his machines crashed. i mean, it started using less cpu.\n
  69. from adrien in ops, both compile and apply are way down\ndaniel pittman did a lot of work on this area\n- store catalog on agent in json not yaml\n- avoid needless object creation\n- reduce stat() call\n
  70. we’re deprecating support for ruby 1.8.5 in telly.\nRHEL5 platform can use a drop-in 1.8.7 package backported from el6\n
  71. we’re deprecating support for ruby 1.8.5 in telly.\nRHEL5 platform can use a drop-in 1.8.7 package backported from el6\n
  72. we’re deprecating support for ruby 1.8.5 in telly.\nRHEL5 platform can use a drop-in 1.8.7 package backported from el6\n
  73. takeaway: qualify your variables. local scope works, top-level works -- \n
  74. takeaway: qualify your variables. local scope works, top-level works -- \n
  75. takeaway: qualify your variables. local scope works, top-level works -- \n
  76. takeaway: qualify your variables. local scope works, top-level works -- \n
  77. takeaway: qualify your variables. local scope works, top-level works -- \n
  78. takeaway: qualify your variables. local scope works, top-level works -- \n
  79. takeaway: qualify your variables. local scope works, top-level works -- \n
  80. takeaway: qualify your variables. local scope works, top-level works -- \n
  81. takeaway: qualify your variables. local scope works, top-level works -- \n
  82. \n
  83. \n
  84. - want to knock down the remaining top watched bugs\n- fixes for ‘platform’ stuff as luke mentioned -- untangling fundamental complexity by paying down tech debt on settings and code loading, building APIs\n- slimmer core - nagios types need to go--things that can be modularised should be. packaged puppet will contain a set of core modules but they won’t be in the same git repo\n- themes : error messages, type and provider split-up\n- but driven by USER TESTING so we fix the important problems not JUST the urgent ones.\n
  85. - want to knock down the remaining top watched bugs\n- fixes for ‘platform’ stuff as luke mentioned -- untangling fundamental complexity by paying down tech debt on settings and code loading, building APIs\n- slimmer core - nagios types need to go--things that can be modularised should be. packaged puppet will contain a set of core modules but they won’t be in the same git repo\n- themes : error messages, type and provider split-up\n- but driven by USER TESTING so we fix the important problems not JUST the urgent ones.\n
  86. - want to knock down the remaining top watched bugs\n- fixes for ‘platform’ stuff as luke mentioned -- untangling fundamental complexity by paying down tech debt on settings and code loading, building APIs\n- slimmer core - nagios types need to go--things that can be modularised should be. packaged puppet will contain a set of core modules but they won’t be in the same git repo\n- themes : error messages, type and provider split-up\n- but driven by USER TESTING so we fix the important problems not JUST the urgent ones.\n
  87. - want to knock down the remaining top watched bugs\n- fixes for ‘platform’ stuff as luke mentioned -- untangling fundamental complexity by paying down tech debt on settings and code loading, building APIs\n- slimmer core - nagios types need to go--things that can be modularised should be. packaged puppet will contain a set of core modules but they won’t be in the same git repo\n- themes : error messages, type and provider split-up\n- but driven by USER TESTING so we fix the important problems not JUST the urgent ones.\n
  88. - want to knock down the remaining top watched bugs\n- fixes for ‘platform’ stuff as luke mentioned -- untangling fundamental complexity by paying down tech debt on settings and code loading, building APIs\n- slimmer core - nagios types need to go--things that can be modularised should be. packaged puppet will contain a set of core modules but they won’t be in the same git repo\n- themes : error messages, type and provider split-up\n- but driven by USER TESTING so we fix the important problems not JUST the urgent ones.\n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n