pcfens / puppet-filebeat

Apache License 2.0
61 stars 179 forks source link

Support for elastic-oss #177

Open Wimmesberger opened 6 years ago

Wimmesberger commented 6 years ago

Hi there!

with version 6.3.0 of elastic's suite they split the repository in 2 variants: normal and open source The main difference is shipping x-pack in the 'normal' variant while the oss branch stays bare as before. For more details this article explains it: We Opened X-Pack

These packages can be downloaded from artefacts.elastic.co/packages/oss-6.x/apt | package-list Problem is that these packages have an '-oss' suffix

As for implementing the support i could think of 2 variants on the spot: 1) Allow to configure the package name in manifest/install/[os].pp and let users configure the elastic-oss repo outside the module similar to puppet/puppet-elasticsearch: package_name

2) Add full support for elastic-oss repository: a new bool variable similar to how puppet-elasticsearch solved this, which affects: repository name: prefix 'oss-' package name: suffix '-oss' example: elastic/puppet-elasticsearch: oss

Thank you for your time and keep up the good work :)

MrMunki commented 5 years ago

Hi, I see a PR was created for this, which failed, can it be resurrected? We're unable to use anything past v 6.6.2 when using AWS Elasticsearch Service as a target.

pcfens commented 4 years ago

I think that some of the changes to support Chocolatey in #237 have the potential to fix things here too - my plan is to get that one merged and then re-visit this issue.

caius commented 4 years ago

I think since then (or at least for 7.x) they've named the packages the same, but now have split the OSS repo separately to the non-OSS one. (At least, looking at the apt installation instructions, that's the case for the apt packages/repos.)

Which means the work in #237 to allow overriding the package name doesn't work anymore, because we need to be able to override the repo url (location in apt) to point at the OSS url.

I was thinking of adding an explicit $open_source => [Boolean] parameter to the filebeat class, and then we can change the logic internally depending on what's needed between major versions/OS' to install the correct version. What do you think about that as an approach @pcfens? 😄

caius commented 4 years ago

Ha, turns out @UiP9AV6Y had a similar idea many moons ago in https://github.com/UiP9AV6Y/puppet-filebeat/commit/258bcb52650cc693c1679fa11623416ec177af06 referenced above. I'll likely rebase that on current master at some point soon 😀

For now I've worked around this in our puppet profile with the following:

  require filebeat::repo
  Apt::Source <| title == 'beats' |> {
    location => "https://artifacts.elastic.co/packages/oss-${filebeat_major_version}.x/apt",
  }
pcfens commented 4 years ago

Let's do that - unfortunately I got sidetracked with other things and never made it back to this.

It seems like supporting the OSS package is becoming a lot more common instead of the edge case since we last looked at this too.