Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[![Build and Test logstash-output-opensearch plugin](https://github.com/opensearch-project/logstash-output-opensearch/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/opensearch-project/logstash-output-opensearch/actions/workflows/ci.yml)

[![Build and Test logstash-output-opensearch plugin](https://github.com/opensearch-project/logstash-output-opensearch/actions/workflows/CI.yml/badge.svg)](https://github.com/opensearch-project/logstash-output-opensearch/actions/workflows/CI.yml)
![PRs welcome!](https://img.shields.io/badge/PRs-welcome!-success)
# Logstash Plugin

- [Welcome!](#welcome)
Expand Down
21 changes: 21 additions & 0 deletions certs/opensearch-rubygems.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDfDCCAmSgAwIBAgIBATANBgkqhkiG9w0BAQUFADBCMRMwEQYDVQQDDApvcGVu
c2VhcmNoMRYwFAYKCZImiZPyLGQBGRYGYW1hem9uMRMwEQYKCZImiZPyLGQBGRYD
Y29tMB4XDTIxMDgwMjIxMDQwM1oXDTIyMDgwMjIxMDQwM1owQjETMBEGA1UEAwwK
b3BlbnNlYXJjaDEWMBQGCgmSJomT8ixkARkWBmFtYXpvbjETMBEGCgmSJomT8ixk
ARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM1z3/jcitjV
umXwRFn+JSBBd36qZB54Dtucf6+E2fmNPzBRhgYN5XJy/+clQJ9NIJV7C8H52P3V
dsce/VXcNAcgfUdlN57nM0ksjFFNlnHWXea8Ub9/6R1K0p1RBizEINzUneoJLvqe
7w/KfvBJStj7AmJgZmzCiu98j75YLcdLhZQykRyJdB03wZsMQUvxPFkhTZn+Qi8k
0U909l9JD0i1PC0xVukYlskUA2xeo36kMMllABJGN536Z0aIT2KX2XTiKK7hILoP
+flNmgA4eyXa5Ki9q4HBN6QhsTKdEinqGngQnUI35YTu2AHsvfjn1wP/nUa9aRVH
zfR37/NQFkECAwEAAaN9MHswCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0O
BBYEFJJ2myhLXK742btavNbG0IWrMNBIMCAGA1UdEQQZMBeBFW9wZW5zZWFyY2hA
YW1hem9uLmNvbTAgBgNVHRIEGTAXgRVvcGVuc2VhcmNoQGFtYXpvbi5jb20wDQYJ
KoZIhvcNAQEFBQADggEBAE7gBP5ecTtKb04qmEsnbJ6+yn0LUSmxPabFBnB6h1+T
XW8BvBw9MpE//5fQf4HSia3m9XjRpl4WxBcJiyfLER64tk/c1JLhV2+rq3CCV/be
DFSP6gY93kK7jwauajGQvyHzORaW1TBM6diIRYCMLY7Isf+PTHl0xhZZBSVm8wl6
IstV+mTP2KC1l7hSzUDb4rrOSnpRB7AEczcDdkjwzHKIlw8rcL+PLLnFTOgqKyq3
yXikuH6LEVykA8pgOcB9gKsB2/zMd2ZlSj2monM8Qw9EfB14ZSDTYS8VYuwWCeF0
eFmXXk0ufQFKl1Yll7quHkmQ0PzKkvXTpONBT6qPkXE=
-----END CERTIFICATE-----
22 changes: 0 additions & 22 deletions dockerfiles/docker-compose.yml

This file was deleted.

54 changes: 0 additions & 54 deletions dockerfiles/run.sh

This file was deleted.

9 changes: 5 additions & 4 deletions lib/logstash/outputs/opensearch/distribution_checker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,25 @@ def initialize(logger)
# @param major_version OpenSearch major version number
# @return [Boolean] true if supported
def is_supported?(pool, url, major_version)
case get_distribution(pool, url)
distribution = get_distribution(pool, url)
case distribution
when 'opensearch'
return true
when 'oss'
if major_version == 7
return true
end
end
log_incompatible_version(url)
log_not_supported(url, major_version, distribution)
false
end

def get_distribution(pool, url)
pool.get_distribution(url)
end

def log_incompatible_version(url)
@logger.error("Could not connect to cluster: incompatible version", url: url.sanitized.to_s)
def log_not_supported(url, major_version, distribution)
@logger.error("Could not connect to cluster", url: url.sanitized.to_s, distribution: distribution, major_version: major_version)
end
end
end; end; end
2 changes: 2 additions & 0 deletions logstash-output-opensearch.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ Gem::Specification.new do |s|
# Tests
s.test_files = s.files.grep(%r{^(test|spec|features)/})

s.cert_chain = ['certs/opensearch-rubygems.pem']

# Special flag to let us know this is actually a logstash plugin
s.metadata = {
"logstash_plugin" => "true",
Expand Down
1 change: 1 addition & 0 deletions release/docker/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.gem
9 changes: 4 additions & 5 deletions dockerfiles/Dockerfile → release/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,8 @@
# VERSION: Optional. Specify the label for image. Defaults to 7.13.2

ARG VERSION
ARG ARCH
FROM docker.elastic.co/logstash/logstash-oss:${VERSION}-${ARCH}
FROM docker.elastic.co/logstash/logstash-oss:${VERSION}
USER logstash
COPY --chown=logstash:logstash dockerfiles/bin/logstash-output-opensearch-*.gem /tmp/logstash-output-opensearch.gem
COPY --chown=logstash:logstash dockerfiles/logstash-opensearch-sample.conf /usr/share/logstash/config/
RUN /usr/share/logstash/bin/logstash-plugin install /tmp/logstash-output-opensearch.gem
COPY --chown=logstash:logstash ./logstash-output-opensearch-*.gem /tmp/logstash-output-opensearch.gem
COPY --chown=logstash:logstash ./logstash-opensearch-sample.conf /usr/share/logstash/config/
RUN /usr/share/logstash/bin/logstash-plugin install /tmp/logstash-output-opensearch.gem && rm -vf /tmp/logstash-output-opensearch.gem
46 changes: 46 additions & 0 deletions release/docker/build-docker-multi-arch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

# This is intended to be run the plugin's root directory. `release/docker`
# Ensure you have Docker Desktop installed as buildx only support Docker Desktop on macOS and Windows

set -e

# Variables
BUILDER_NUM=`date +%s`
BUILDER_NAME="multiarch_${BUILDER_NUM}"

# Imports and functions
function cleanup_docker_buildx() {
# Cleanup docker buildx
echo -e "\n* Cleanup docker buildx"
docker buildx use default
docker buildx rm $BUILDER_NAME > /dev/null 2>&1
}

# Building plugin
bash build-plugin.sh

# Identify Logstash version
version=${LOGSTASH_VERSION}
if [[ -z "$version" ]]; then
version=7.13.2
fi

# Prepare docker buildx
trap cleanup_docker_buildx TERM INT EXIT
echo -e "\n* Prepare docker buildx"
docker buildx use default
docker buildx create --name $BUILDER_NAME --use
docker buildx inspect --bootstrap

# Check buildx status
echo -e "\n* Check buildx status"
docker buildx ls | grep $BUILDER_NAME
docker ps | grep $BUILDER_NAME

# Docker Build Images
docker buildx build --platform linux/amd64,linux/arm64 --build-arg VERSION=$version -t opensearchstaging/logstash-oss-with-opensearch-output-plugin:$version -t opensearchstaging/logstash-oss-with-opensearch-output-plugin:latest -f Dockerfile --push .

17 changes: 10 additions & 7 deletions dockerfiles/build.sh → release/docker/build-plugin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,17 @@
# Ensure you have Docker installed locally and set the VERSION and BUILD_DATE environment variable.
set -e

if [ -d dockerfiles/bin ]; then
rm -rf dockerfiles/bin
fi
CURR_DIR=`dirname $(realpath $0)`; cd $CURR_DIR
GIT_ROOT=`git rev-parse --show-toplevel`

mkdir -p dockerfiles/bin
echo 'Clear previous gem'
echo -n "Remove "; rm -rfv logstash-output-opensearch*.gem

echo 'Building plugin'
echo 'Copy gemspec'
cd $GIT_ROOT # We need to build the gem in root of this repo so .gemspec file contained locations are resolving correctly

echo 'Building plugin gem'
gem build logstash-output-opensearch.gemspec

echo "Moving gem to bin directory"
mv logstash-output-opensearch*.gem dockerfiles/bin/
echo 'Move Gem Location'
mv -v logstash-output-opensearch*.gem $CURR_DIR
6 changes: 3 additions & 3 deletions spec/unit/outputs/opensearch/http_client/pool_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@
end

it 'logs message' do
expect(subject.distribution_checker).to receive(:log_incompatible_version).once.and_call_original
expect(subject.distribution_checker).to receive(:log_not_supported).once.and_call_original
subject.update_initial_urls
end
end
Expand All @@ -283,7 +283,7 @@
end

it 'does not log message' do
expect(subject.distribution_checker).to_not receive(:log_incompatible_version)
expect(subject.distribution_checker).to_not receive(:log_not_supported)
subject.update_initial_urls
end
end
Expand All @@ -297,7 +297,7 @@
end

it 'does not log message' do
expect(subject.distribution_checker).to_not receive(:log_incompatible_version)
expect(subject.distribution_checker).to_not receive(:log_not_supported)
subject.update_initial_urls
end
end
Expand Down