From 6463a84e2b62b9300f96973f109887a2c1c9d1cf Mon Sep 17 00:00:00 2001 From: Max Wilhelm Date: Mon, 30 Nov 2015 15:18:26 +0100 Subject: [PATCH] added fluentd::repo & fluentd::repo::apt --- manifests/init.pp | 11 ++++++++++- manifests/params.pp | 19 +++++++++++++++++++ manifests/repo.pp | 12 ++++++++++++ manifests/repo/apt.pp | 20 ++++++++++++++++++++ metadata.json | 3 ++- 5 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 manifests/params.pp create mode 100644 manifests/repo.pp create mode 100644 manifests/repo/apt.pp diff --git a/manifests/init.pp b/manifests/init.pp index ccecd74..605f787 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -42,7 +42,16 @@ # # Copyright 2015 Your name here, unless otherwise noted. # -class fluentd { +class fluentd ( + $ensure = $::fluentd::params::ensure, + $manage_repo = $::fluentd::params::manage_repo, +) inherits fluentd::params { + validate_string($ensure) + validate_bool($manage_repo) + + if $manage_repo { + class { '::fluentd::repo': } + } } diff --git a/manifests/params.pp b/manifests/params.pp new file mode 100644 index 0000000..ce0973a --- /dev/null +++ b/manifests/params.pp @@ -0,0 +1,19 @@ +class fluentd::params { + $ensure = 'present' + + case $::osfamily { + 'Debian': { + case $::operatingsystem { + 'Ubuntu': { + $manage_repo = true + } + default: { + fail("Unsupported osfamily: ${::operatingsystem}") + } + } + } + default: { + fail("Unsupported osfamily: ${::osfamily}") + } + } +} diff --git a/manifests/repo.pp b/manifests/repo.pp new file mode 100644 index 0000000..08c8b3d --- /dev/null +++ b/manifests/repo.pp @@ -0,0 +1,12 @@ +# Configure package repository +# +class fluentd::repo { + case $::osfamily { + 'Debian': { + include ::fluentd::repo::apt + } + default: { + fail("No repo available for ${::osfamily}/${::operatingsystem}") + } + } +} \ No newline at end of file diff --git a/manifests/repo/apt.pp b/manifests/repo/apt.pp new file mode 100644 index 0000000..351d745 --- /dev/null +++ b/manifests/repo/apt.pp @@ -0,0 +1,20 @@ +# Configure apt::source +# +class fluentd::repo::apt ( + $ensure = 'present', + $location = downcase("http://packages.treasuredata.com/2/${::operatingsystem}/${::lsbdistcodename}"), + $release = $::lsbdistcodename, + $repos = 'contrib', + $key_source = 'https://packages.treasuredata.com/GPG-KEY-td-agent', +) { + + include '::apt' + + apt::source { 'treasure-data': + ensure => $ensure, + location => $location, + release => $release, + repos => $repos, + key_source => $key_source, + } +} \ No newline at end of file diff --git a/metadata.json b/metadata.json index 22df9af..dca447b 100644 --- a/metadata.json +++ b/metadata.json @@ -8,7 +8,8 @@ "project_page": "https://github.com/wywygmbh/puppet-fluentd", "issues_url": "https://github.com/wywygmbh/puppet-fluentd/issues", "dependencies": [ - {"name":"puppetlabs-stdlib","version_requirement":">= 1.0.0"} + { "name":"puppetlabs-stdlib","version_requirement":">= 1.0.0" }, + { "name": "puppetlabs/apt", "version_requirement": ">= 1.8.0 < 3.0.0" } ], "data_provider": null }