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

Support puppet-REST integration

    Details

    • Type: New Feature
    • Status: Accepted
    • Priority: Normal
    • Resolution: Unresolved
    • Affects Version/s: PUP 4.6.1
    • Fix Version/s: None
    • Component/s: Types and Providers
    • Labels:
    • Environment:

      Web

    • Template:
    • Acceptance Criteria:
      Hide

      A scheduler would need to be used to do one URL every 60 seconds or so over a 90 minute window. If all the URLs were called at once, this could overload the CPU of a web site or device.

      Show
      A scheduler would need to be used to do one URL every 60 seconds or so over a 90 minute window. If all the URLs were called at once, this could overload the CPU of a web site or device.
    • Team:
      Modules

      Description

      I would like the ability to manage configurations via REST calls. Often times, web sites and appliances can be configured via REST APIs. Examples include:

      Confluence
      The Foreman
      F5 BIG-IP Load Balancers
      Many more

      Managing configurations of these via cURL calls using BASH's curl is tedious. Furthermore, This is not idempotent. I can set something, but if it is changed, there is no way to set it back without some serious gymnastics. This feature request is to have an agent periodically poll RESTful URLs and compare their settings to those defined in a puppet module or manifest directly (rather than having to BASH hack using exec calls to /bin/curl).

      To do this, puppet would need to know about the REST structure of a given resource. Fortunately, there are emerging standards for documenting REST APIs such as swagger and Hydra:

      http://stackoverflow.com/questions/4937379/example-of-a-well-documented-restful-service
      http://stackoverflow.com/questions/28242676/what-specification-should-i-use-for-documenting-rest-apis

      Similar to an SNMP MIB, documents describing the API could be fed to puppet and then puppet could idempotently manage the configuration of a wide variety of RESTful devices. Instead of having to develop a module for every single RESTful device or software, one module could rule them all and the requirement for providing the instructions for interfacing with that device or software would be on the design team of the software or appliance.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jdshewey@gmail.com James Shewey
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:

                Zendesk Support