Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phihos/puppet-graphql
https://github.com/phihos/puppet-graphql
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/phihos/puppet-graphql
- Owner: phihos
- Created: 2022-10-13T18:19:24.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-25T21:09:55.000Z (almost 2 years ago)
- Last Synced: 2024-09-23T15:48:31.519Z (about 2 months ago)
- Language: Python
- Size: 65.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# puppet-graphql
This module provides a helper function to retrieve information from a GraphQL endpoint during catalog compilation.
## Table of Contents
1. [Description](#description)
1. [Setup - The basics of getting started with graphql](#setup)
1. [Usage - Configuration options and additional functionality](#usage)
1. [Limitations - OS compatibility, etc.](#limitations)
1. [Development - Guide for contributing to the module](#development)## 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:
```puppet
$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:
```bash
puppet strings generate --format markdown --out REFERENCE.md
```