Showing with 2,759 additions and 536 deletions.
  1. +8 −0 .fixtures-latest.yml
  2. +11 −0 .fixtures.yml
  3. +13 −0 CHANGELOG.md
  4. +64 −7 README.md
  5. +177 −5 REFERENCE.md
  6. +1 −0 appveyor.yml
  7. +1 −1 data/os/windows.yaml
  8. +20 −0 lib/puppet/provider/package/sensu_gem.rb
  9. +143 −0 lib/puppet/provider/sensu_bonsai_asset/sensuctl.rb
  10. +10 −0 lib/puppet/provider/sensuctl.rb
  11. +11 −2 lib/puppet/type/sensu_asset.rb
  12. +144 −0 lib/puppet/type/sensu_bonsai_asset.rb
  13. +11 −8 lib/puppet/type/sensu_plugin.rb
  14. +101 −0 lib/puppet/type/sensu_resources.rb
  15. +14 −5 manifests/agent.pp
  16. +3 −0 manifests/backend.pp
  17. +2 −0 manifests/backend/datastore/postgresql.pp
  18. +5 −0 manifests/backend/resources.pp
  19. +4 −0 manifests/plugins.pp
  20. +1 −1 metadata.json
  21. +194 −0 spec/acceptance/sensu_bonsai_asset.rb
  22. +36 −11 spec/acceptance/sensu_check_spec.rb
  23. +40 −0 spec/acceptance/sensu_cluster_role_spec.rb
  24. +71 −1 spec/acceptance/sensu_plugin_spec.rb
  25. +41 −2 spec/acceptance/windows_spec.rb
  26. +9 −5 spec/classes/agent_spec.rb
  27. +13 −0 spec/classes/backend_resources_spec.rb
  28. +9 −0 spec/classes/plugins_spec.rb
  29. +261 −0 spec/fixtures/unit/provider/sensu_bonsai_asset/sensuctl/asset_list.json
  30. +405 −0 spec/fixtures/unit/provider/sensu_bonsai_asset/sensuctl/bonsai_asset.json
  31. +6 −1 spec/spec_helper.rb
  32. +23 −23 spec/unit/provider/sensu_ad_auth/sensuctl_spec.rb
  33. +23 −23 spec/unit/provider/sensu_asset/sensuctl_spec.rb
  34. +84 −0 spec/unit/provider/sensu_bonsai_asset/sensuctl_spec.rb
  35. +30 −30 spec/unit/provider/sensu_check/sensuctl_spec.rb
  36. +21 −21 spec/unit/provider/sensu_cluster_member/sensuctl_spec.rb
  37. +17 −17 spec/unit/provider/sensu_cluster_role/sensuctl_spec.rb
  38. +17 −17 spec/unit/provider/sensu_cluster_role_binding/sensuctl_spec.rb
  39. +15 −15 spec/unit/provider/sensu_config/sensuctl_spec.rb
  40. +18 −18 spec/unit/provider/sensu_configure/sensuctl_spec.rb
  41. +17 −19 spec/unit/provider/sensu_entity/sensuctl_spec.rb
  42. +17 −17 spec/unit/provider/sensu_filter/sensuctl_spec.rb
  43. +31 −31 spec/unit/provider/sensu_handler/sensuctl_spec.rb
  44. +17 −17 spec/unit/provider/sensu_hook/sensuctl_spec.rb
  45. +23 −23 spec/unit/provider/sensu_ldap_auth/sensuctl_spec.rb
  46. +21 −21 spec/unit/provider/sensu_mutator/sensuctl_spec.rb
  47. +13 −17 spec/unit/provider/sensu_namespace/sensuctl_spec.rb
  48. +19 −19 spec/unit/provider/sensu_oidc_auth/sensuctl_spec.rb
  49. +54 −54 spec/unit/provider/sensu_plugin/sensu_install_spec.rb
  50. +17 −17 spec/unit/provider/sensu_role/sensuctl_spec.rb
  51. +17 −17 spec/unit/provider/sensu_role_binding/sensuctl_spec.rb
  52. +53 −53 spec/unit/provider/sensu_user/sensuctl_spec.rb
  53. +9 −9 spec/unit/provider/sensuctl_spec.rb
  54. +5 −0 spec/unit/sensu_asset_spec.rb
  55. +262 −0 spec/unit/sensu_bonsai_asset_spec.rb
  56. +22 −0 spec/unit/sensu_plugin_spec.rb
  57. +83 −0 spec/unit/sensu_resources_spec.rb
  58. +1 −1 tests/provision_basic_win.ps1
  59. +1 −8 tests/sensu-agent.pp
8 changes: 8 additions & 0 deletions .fixtures-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ fixtures:
yumrepo_core:
repo: git://github.com/puppetlabs/puppetlabs-yumrepo_core
puppet_version: ">= 6.0.0"
chocolatey:
repo: git://github.com/puppetlabs/puppetlabs-chocolatey.git
# Needed by chocolatey
registry:
repo: git://github.com/puppetlabs/puppetlabs-registry.git
# Needed by chocolatey
powershell:
repo: git://github.com/puppetlabs/puppetlabs-powershell.git
# Need by postgresql
augeas_core:
repo: git://github.com/puppetlabs/puppetlabs-augeas_core
Expand Down
11 changes: 11 additions & 0 deletions .fixtures.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ fixtures:
repo: git://github.com/puppetlabs/puppetlabs-yumrepo_core
ref: 1.0.1
puppet_version: ">= 6.0.0"
chocolatey:
repo: git://github.com/puppetlabs/puppetlabs-chocolatey.git
ref: 3.0.0
# Needed by chocolatey
registry:
repo: git://github.com/puppetlabs/puppetlabs-registry.git
ref: 1.0.0
# Needed by chocolatey
powershell:
repo: git://github.com/puppetlabs/puppetlabs-powershell.git
ref: 1.0.1
# Need by postgresql
augeas_core:
repo: git://github.com/puppetlabs/puppetlabs-augeas_core
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Change Log

## [v3.9.0](https://github.com/sensu/sensu-puppet/tree/v3.9.0) (2019-10-10)
[Full Changelog](https://github.com/sensu/sensu-puppet/compare/v3.8.0...v3.9.0)

**Merged pull requests:**

- Add sensu\_resources type that will handle resource purging [\#1158](https://github.com/sensu/sensu-puppet/pull/1158) ([treydock](https://github.com/treydock))
- Add sensu\_gem package provider [\#1156](https://github.com/sensu/sensu-puppet/pull/1156) ([treydock](https://github.com/treydock))
- Install Windows agent via chocolatey [\#1152](https://github.com/sensu/sensu-puppet/pull/1152) ([treydock](https://github.com/treydock))
- Fix Puppet strings warnings [\#1150](https://github.com/sensu/sensu-puppet/pull/1150) ([treydock](https://github.com/treydock))
- Add sensu\_bonsai\_asset type [\#1149](https://github.com/sensu/sensu-puppet/pull/1149) ([treydock](https://github.com/treydock))
- Fix sensu\_plugin version insync? check [\#1148](https://github.com/sensu/sensu-puppet/pull/1148) ([treydock](https://github.com/treydock))
- Replace unit test instance variables with let [\#1143](https://github.com/sensu/sensu-puppet/pull/1143) ([treydock](https://github.com/treydock))

## [v3.8.0](https://github.com/sensu/sensu-puppet/tree/v3.8.0) (2019-09-02)
[Full Changelog](https://github.com/sensu/sensu-puppet/compare/v3.7.0...v3.8.0)

Expand Down
71 changes: 64 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
* [Adding backend members to an existing cluster](#adding-backend-members-to-an-existing-cluster)
* [Large Environment Considerations](#large-environment-considerations)
* [Composite Names for Namespaces](#composite-names-for-namespaces)
* [Installing Bonsai Assets](#installing-bonsai-assets)
4. [Reference](#reference)
* [Facts](#facts)
5. [Limitations - OS compatibility, etc.](#limitations)
Expand Down Expand Up @@ -69,7 +70,9 @@ This module has a soft dependency on the [puppetlabs/apt](https://forge.puppet.c

If using Puppet >= 6.0.0 there is a soft dependency on the [puppetlabs/yumrepo_core](https://forge.puppet.com/puppetlabs/yumrepo_core) module (`>= 1.0.1 < 2.0.0`) for systems using `yum`.

If managing Windows there is a soft dependency on the [puppet/archive](https://forge.puppet.com/puppet/archive) module (`>= 3.0.0 < 5.0.0`).
If managing Windows there is a soft dependency on the [puppetlabs/chocolatey](https://forge.puppet.com/puppetlabs/chocolatey) module (`>= 3.0.0 < 5.0.0`).

If managing Windows and defining `package_source`, there is a soft dependency on the [puppet/archive](https://forge.puppet.com/puppet/archive) module (`>= 3.0.0 < 5.0.0`).

For PostgreSQL datastore support there is a soft dependency on [puppetlabs/postgresql](https://forge.puppet.com/puppetlabs/postgresql) module (`>= 6.0.0 < 7.0.0`).

Expand Down Expand Up @@ -129,22 +132,33 @@ associated to `linux` and `apache-servers` subscriptions.

### Manage Windows Agent

This module supports Windows Sensu Go agent starting with version 5.7.0.
This module supports Windows Sensu Go agent via chocolatey beginning with version 5.12.0.

```puppet
class { 'sensu::agent':
backends => ['sensu-backend.example.com:8081'],
config_hash => {
'subscriptions' => ['windows'],
},
}
```

The Windows package source must be specified as either a URL, a Puppet source or a filesystem path.
If you do not wish to install using chocolatey then you must define `package_source` as either a URL, a Puppet source or a filesystem path.

Install sensu-go-agent on Windows from URL:

```puppet
class { 'sensu::agent':
package_source => 'https://s3-us-west-2.amazonaws.com/sensu.io/sensu-go/5.7.0/sensu-go-agent_5.7.0.2380_en-US.x64.msi',
package_name => 'Sensu Agent',
package_source => 'https://s3-us-west-2.amazonaws.com/sensu.io/sensu-go/5.13.1/sensu-go-agent_5.13.1.5957_en-US.x64.msi',
}
```

Install sensu-go-agent on Windows from Puppet source:

```puppet
class { 'sensu::agent':
package_name => 'Sensu Agent',
package_source => 'puppet:///modules/profile/sensu/sensu-go-agent.msi',
}
```
Expand All @@ -153,6 +167,7 @@ If a system already has the necessary MSI present it can be installed without do

```puppet
class { 'sensu::agent':
package_name => 'Sensu Agent',
package_source => 'C:\Temp\sensu-go-agent.msi',
}
```
Expand Down Expand Up @@ -299,6 +314,15 @@ Set `dependencies` to an empty Array to disable the `sensu::plugins` dependency
}
```

If gems are required and not pulled in as gem dependencies they can also be installed.

```puppet
class { 'sensu::plugins':
plugins => ['memory-checks'],
gem_dependencies => ['vmstat'],
}
```

You can uninstall plugins by passing `ensure` as `absent`.

```puppet
Expand Down Expand Up @@ -437,9 +461,18 @@ sensu::backend::checks:
### Resource purging
All the types provided by this module support purging except `sensu_config`.
At this time `sensu_asset` can not be purged, see [Limitations](#limitations).
This example will remove all unmanaged Sensu checks:

```puppet
sensu_resources { 'sensu_check':
purge => true,
}
```

**NOTE**: The Puppet built-in `resources` can also be used for purging but you must ensure that resources that support namespaces are defined using composite names in the form of `$name in $namespace`. See [Composite Names for Namespaces](#composite-names-for-namespaces) for details on composite names.

Using the Puppet built-in `resources` would look like this:

```puppet
resources { 'sensu_check':
purge => true,
Expand Down Expand Up @@ -548,6 +581,32 @@ The example above would add the `check-cpu` check to both the `default` and `tea

**NOTE:** If you use composite names for namespaces, the `namespace` property takes precedence.

### Installing Bonsai Assets
Install a bonsai asset. The latest version will be installed but not automatically upgraded.

```puppet
sensu_bonsai_asset { 'sensu/sensu-pagerduty-handler':
ensure => 'present',
}
```

Install specific version of a bonsai asset.

```puppet
sensu_bonsai_asset { 'sensu/sensu-pagerduty-handler':
ensure => 'present',
version => '1.2.0',
}
```

Install latest version of a bonsai asset. Puppet will update the Bonsai asset if a new version is released.
```puppet
sensu_bonsai_asset { 'sensu/sensu-pagerduty-handler':
ensure => 'present',
version => 'latest',
}
```

## Reference

### Facts
Expand Down Expand Up @@ -596,8 +655,6 @@ facter -p sensuctl
The Sensu v2 support is designed so that all resources managed by `sensuctl` are defined on the `sensu-backend` host.
This module does not support adding `sensuctl` resources on a host other than the `sensu-backend` host.

The type `sensu_asset` does not at this time support `ensure => absent` due to a limitation with sensuctl, see [sensu-go#988](https://github.com/sensu/sensu-go/issues/988).

The type `sensu_user` does not at this time support `ensure => absent` due to a limitation with sensuctl, see [sensu-go#2540](https://github.com/sensu/sensu-go/issues/2540).

### Notes regarding support
Expand Down
Loading