Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-5978

Deprecate static compiler



    • Bug
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • PUP 4.4.0
    • None
    • None
    • New Feature
    • As part of the 4.4 documentation around static_catalogs we should mention that static_compiler is now deprecated.


      The static compiler has a few problems:

      1. It cannot inline windows files because it calls Puppet::Resource#to_ral. That method triggers agent-side validation to occur on the master. Since windows paths start with a drive letter and not /, the path appears to be a relative path to the POSIX master, causing validation to fail.
      2. It doesn't handle multiple sources values and related sourceselect parameter.
      3. It adds the desired checksum to the content property, something we are working on separating (PUP-1043).
      4. It adds an edge from the recursive parent to each generated resource, e.g. /foo => /foo/bar/baz, instead of the immediate parent, e.g. /foo/bar => /foo/bar/baz. That said, adding the edge has no effect, because the agent doesn't copy edges from the resource catalog to the RAL catalog. The actual reason we get any dependencies at application time, is because the file type autorequires its immediate parent.
      5. It doesn't handle containment when the relationship is expressed from another resource to the recursive file:

      file { '/path/to/dir':
        ensure  => directory,
        recurse => remote,
        source  => 'puppet:///modules/mymod/mydir',
      notify { 'hi':
        require => File['/path/to/dir']

      Without the static compiler, the agent will add a reverse dependency edge, e.g. before => Notify['hi'], from each eval generated resource to the notify resource (actually to a sentinel whit which then depends on the notify resource). This provides containment for all of the generated resources.

      The deprecation warning should mention "use static catalogs instead."


        Issue Links



              Unassigned Unassigned
              josh Josh Cooper
              0 Vote for this issue
              2 Start watching this issue



                Zendesk Support