test_device
Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2016.4.x
- Puppet >= 4.10.0 < 7.0.0
- , , , , , ,
Tasks:
- device_spin
Start using this module
Add this module to your Puppetfile:
mod 'puppetlabs-test_device', '1.0.0'
Learn more about managing modules with a PuppetfileDocumentation
test_device
Table of Contents
- Description
- Setup - The basics of getting started with test_device
- Usage - Configuration options and additional functionality
- Limitations - OS compatibility, etc.
- Development - Guide for contributing to the module
Description
This module contains a test device that only burns CPU and wall clock time to be used during performance testing. The two different knobs are intended to simulate connection and data processing overhead, as well as delays when waiting on a devices response.
Setup
Configure an arbitrary amount of devices using the spinner
type in your device.conf
. Inthe credentials you can configure extra wait times for fetching facts and retrieving resources as facts_cpu_time
, facts_wait_time
, get_cpu_time
and get_wait_time
. All times can be specified in fractional seconds.
Requirement for executing task
The puppetlabs-ruby_task_helper module should be installed
Usage
- Create a catalog with an appropriate number of
spinner
resources in it. - Set the
cpu_time
andwait_time
as appropriate for the devices you want to emulate. - Run
puppet device
to execute those catalogs. - ???
- Profit!
Executing task
The device_spin
task can be executed from bolt by supplying an basic inventory file:
name
Name of the device (no used by test_device)alias
Alias to use for the deviceconfig
of which:transport
Alwaysremote
For example:
nodes:
- name: spinny.example.net
alias: spinny
config:
transport: remote
Bolt executes the task with the following command:
bolt task run test_device::device_spin --nodes spinny --modulepath /etc/puppetlabs/code/environments/production/modules/ --inventoryfile ./inventory.yaml --param '{"cpu_time": 2, "wait_time": 3}'
Changing the param values of cpu_time
and wait_time
will affect the test_device as defined in device_spin.json
Limitations
Understanding the required cpu and wait times to emulate a realistic work load is left as an exercise to the reader, as this is dependent on the mix of devices you are running.
There are currently no known bugs.
Development
PRs on github always appreciated!
What are tasks?
Modules can contain tasks that take action outside of a desired state managed by Puppet. It’s perfect for troubleshooting or deploying one-off changes, distributing scripts to run across your infrastructure, or automating changes that need to happen in a particular order as part of an application deployment.
Tasks in this module release
Change log
All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
v1.0.0 (2019-05-08)
Added
UNCATEGORIZED PRS; GO LABEL THEM
- (maint) Refactor of device_spin task to use params #4 (da-ar)
- (maint) Unit test fixes #2 (willmeek)
- (maint) enable slack notifications #1 (DavidS)
* This Changelog was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/ruby_task_helper (>= 0.3.0 <= 2.0.0)