graphql

pdk
This module provides a helper function to retrieve information from a GraphQL endpoint during catalog compilation.

758 downloads

351 latest version

5.0 quality score

Version information

  • 0.1.2 (latest)
  • 0.1.1
  • 0.1.0
released Nov 25th 2022
This version is compatible with:
  • Puppet Enterprise 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 2019.8.x
  • Puppet >= 6.21.0 < 8.0.0
  • CentOS
    ,
    OracleLinux
    ,
    RedHat
    ,
    Scientific
    ,
    Debian
    ,
    Ubuntu
    ,
    Fedora
    ,
    Darwin
    ,
    SLES
    ,
    Solaris
    ,
    windows
    ,
    AIX

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'phihos-graphql', '0.1.2'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add phihos-graphql
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install phihos-graphql --version 0.1.2

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

Documentation

phihos/graphql — version 0.1.2 Nov 25th 2022

puppet-graphql

This module provides a helper function to retrieve information from a GraphQL endpoint during catalog compilation.

Table of Contents

  1. Description
  2. Setup - The basics of getting started with graphql
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.
  5. Development - Guide for contributing to the module

Description

This module has been implemented mainly for the use-case of retrieving IP addresses from Netbox IPAM. But it can be used for any kind of GraphQL HTTP API.

Setup

This module only needs Ruby's built-in NEt::HTTP library. No further setup needed

Usage

Currently there is only a single function you can use in your puppet code:

$query = @(EOT)
    {
      site_list {
        id,
        slug,
        name,
      }
    }
    | EOT

$result = graphql::graphql_query({
    'url'     => 'https://netbox.tld/graphql/',
    'headers' => { 'Authorization' => "Token somenetboxtoken" },
    'query'   => $query,
})

# $result could be undef in case an error occured
# the error will be logged to the puppetserver logs and a notify resource will be created
if $result {
  $my_sites = $result['data']['site_list']
}


# ...

Limitations

This functions in this module - as all Puppet functions - can only be executed on the puppetmaster host during catalog compile time.

Development

Pull requests welcome.

If you submit a change to this module, be sure to regenerate the reference documentation as follows:

puppet strings generate --format markdown --out REFERENCE.md