elasticsearch_env_config 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 753bef28e74ace417f826cdd50e9d22cef7e098ad411ec1368d5f9bddcc8485e
4
+ data.tar.gz: d2937ddca24ef93faed02f04d6822f2dbff493b8ac120c03a02bd56f819fc71a
5
+ SHA512:
6
+ metadata.gz: 460ebc6b4e9ca01f272df06aa123c5fb5548bb99bb922fd945c5997f3779a806ff9fa6724add3b59fc8dccda6891cc1c7d665a022b39821bc9922a8853878c77
7
+ data.tar.gz: '08c2ac6aea529896ecf620ea413f2694745a797041141445c2a0a740d2011667102b2df10d96c7858bbd7b331daac67dd6d8f9ed3e0a7f759e9fc74e3faa3206'
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ ---
2
+ language: ruby
3
+ cache: bundler
4
+ rvm:
5
+ - 2.7.3
6
+ before_install: gem install bundler -v 2.1.4
data/Dockerfile ADDED
@@ -0,0 +1,23 @@
1
+ FROM ruby:2.5
2
+
3
+ RUN gem install --no-doc bundler
4
+
5
+ RUN mkdir /usr/src/app
6
+
7
+ WORKDIR /usr/local/src
8
+
9
+ ADD docker/docker-entrypoint.sh /
10
+ ADD docker/minica ./minica
11
+ ADD Gemfile elasticsearch_env_config.gemspec ./
12
+ ADD lib/elasticsearch_env_config/version.rb ./lib/elasticsearch_env_config/version.rb
13
+ RUN bundle install --jobs=3 --retry=3
14
+ ADD . ./
15
+
16
+ ENTRYPOINT [ "/docker-entrypoint.sh" ]
17
+
18
+ ENV RSPEC_ARGS="--force-color -fd"
19
+ ENV RSPEC_SPECS=spec
20
+ ENV RSPEC_TAG_ARGS="--tag ~connect"
21
+ ENV TEST_ES_SERVER=""
22
+
23
+ CMD bundle exec rspec ${RSPEC_ARGS} ${RSPEC_TAG_ARGS} ${RSPEC_SPECS}
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in elasticsearch_env_config.gemspec
4
+ gemspec
5
+
6
+ gem "rake", "~> 12.0"
7
+ gem "rspec", "~> 3.0"
8
+ gem "elasticsearch", "~> 7.12"
data/Gemfile.lock ADDED
@@ -0,0 +1,55 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ elasticsearch_env_config (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ diff-lcs (1.4.4)
10
+ elasticsearch (7.12.0)
11
+ elasticsearch-api (= 7.12.0)
12
+ elasticsearch-transport (= 7.12.0)
13
+ elasticsearch-api (7.12.0)
14
+ multi_json
15
+ elasticsearch-transport (7.12.0)
16
+ faraday (~> 1)
17
+ multi_json
18
+ faraday (1.4.1)
19
+ faraday-excon (~> 1.1)
20
+ faraday-net_http (~> 1.0)
21
+ faraday-net_http_persistent (~> 1.1)
22
+ multipart-post (>= 1.2, < 3)
23
+ ruby2_keywords (>= 0.0.4)
24
+ faraday-excon (1.1.0)
25
+ faraday-net_http (1.0.1)
26
+ faraday-net_http_persistent (1.1.0)
27
+ multi_json (1.15.0)
28
+ multipart-post (2.1.1)
29
+ rake (12.3.3)
30
+ rspec (3.10.0)
31
+ rspec-core (~> 3.10.0)
32
+ rspec-expectations (~> 3.10.0)
33
+ rspec-mocks (~> 3.10.0)
34
+ rspec-core (3.10.1)
35
+ rspec-support (~> 3.10.0)
36
+ rspec-expectations (3.10.1)
37
+ diff-lcs (>= 1.2.0, < 2.0)
38
+ rspec-support (~> 3.10.0)
39
+ rspec-mocks (3.10.2)
40
+ diff-lcs (>= 1.2.0, < 2.0)
41
+ rspec-support (~> 3.10.0)
42
+ rspec-support (3.10.2)
43
+ ruby2_keywords (0.0.4)
44
+
45
+ PLATFORMS
46
+ ruby
47
+
48
+ DEPENDENCIES
49
+ elasticsearch (~> 7.12)
50
+ elasticsearch_env_config!
51
+ rake (~> 12.0)
52
+ rspec (~> 3.0)
53
+
54
+ BUNDLED WITH
55
+ 2.1.4
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2021 Sheldon Hearn
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # ElasticsearchEnvConfig
2
+
3
+ Provides redis client configuration based on environment variables:
4
+
5
+ * `ELASTICSEARCH_HOSTS` - comma-separated list of standard elasticsearch hosts understood by the [elasticsearch-transport](https://rubygems.org/gems/elasticsearch-transport) gem.
6
+ * `ELASTICSEARCH_INDEX` - index to log into, sans date pattern (required)
7
+ * `ELASTICSEARCH_USER` - username for authenticating against all hosts (required if `ELASTICSEARCH_PASSWORD` is given)
8
+ * `ELASTICSEARCH_PASSWORD` - password for authenticating against all hosts (required if `ELASTICSEARCH_USER` is given)
9
+ * `ELASTICSEARCH_DATE_PATTERN` - time format used to generate the full index name
10
+ * `ELASTICSEARCH_HOST` - name of this host to appear in log messages
11
+ * `ELASTICSEARCH_APPLICATION` - name of this application to appear in log messages
12
+
13
+ ## Installation
14
+
15
+ Add this line to your application's Gemfile:
16
+
17
+ ```ruby
18
+ gem 'elasticsearch_env_config'
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ $ bundle install
24
+
25
+ Or install it yourself as:
26
+
27
+ $ gem install elasticsearch_env_config
28
+
29
+ ## Usage
30
+
31
+ ```
32
+ require "redis"
33
+ require "elasticsearch"
34
+ require "semantic_logger"
35
+
36
+ SemanticLogger.add_appender(appender: :elasticsearch, **(ElasticSearchEnvConfig.new.to_h))
37
+ ```
38
+
39
+
40
+ ## Development
41
+
42
+ After checking out the repo, run `docker-compose build && docker-compose run test` to run the tests.
43
+
44
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
45
+
46
+ For development without docker-compose, you can skip examples that connect to elasticsearch with:
47
+
48
+ ```
49
+ ELASTICSEARCH_HOSTS=fake bundle exec rspec -fd --tag ~connect spec
50
+ ```
51
+
52
+ ## Contributing
53
+
54
+ Bug reports and pull requests are welcome on GitHub at https://github.com/webnifico/elasticsearch_env_config.
55
+
56
+
57
+ ## License
58
+
59
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "elasticsearch_env_config"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,79 @@
1
+ version: "3"
2
+
3
+ services:
4
+ test:
5
+ build:
6
+ context: .
7
+ environment:
8
+ RSPEC_TAG_ARGS: "--tag ~connect:@connect"
9
+ TEST_ES_SERVER: es01:9200
10
+ ELASTICSEARCH_HOSTS: es01:9200, es02:9200, es03:9200
11
+ depends_on:
12
+ - es01
13
+ - es02
14
+ - es03
15
+ es01:
16
+ image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
17
+ container_name: es01
18
+ environment:
19
+ - node.name=es01
20
+ - cluster.name=es-docker-cluster
21
+ - discovery.seed_hosts=es02,es03
22
+ - cluster.initial_master_nodes=es01,es02,es03
23
+ - bootstrap.memory_lock=true
24
+ - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
25
+ ulimits:
26
+ memlock:
27
+ soft: -1
28
+ hard: -1
29
+ volumes:
30
+ - data01:/usr/share/elasticsearch/data
31
+ ports:
32
+ - 9200
33
+ - 9300
34
+ es02:
35
+ image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
36
+ container_name: es02
37
+ environment:
38
+ - node.name=es02
39
+ - cluster.name=es-docker-cluster
40
+ - discovery.seed_hosts=es01,es03
41
+ - cluster.initial_master_nodes=es01,es02,es03
42
+ - bootstrap.memory_lock=true
43
+ - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
44
+ ulimits:
45
+ memlock:
46
+ soft: -1
47
+ hard: -1
48
+ volumes:
49
+ - data02:/usr/share/elasticsearch/data
50
+ ports:
51
+ - 9200
52
+ - 9300
53
+ es03:
54
+ image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
55
+ container_name: es03
56
+ environment:
57
+ - node.name=es03
58
+ - cluster.name=es-docker-cluster
59
+ - discovery.seed_hosts=es01,es02
60
+ - cluster.initial_master_nodes=es01,es02,es03
61
+ - bootstrap.memory_lock=true
62
+ - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
63
+ ulimits:
64
+ memlock:
65
+ soft: -1
66
+ hard: -1
67
+ volumes:
68
+ - data03:/usr/share/elasticsearch/data
69
+ ports:
70
+ - 9200
71
+ - 9300
72
+
73
+ volumes:
74
+ data01:
75
+ driver: local
76
+ data02:
77
+ driver: local
78
+ data03:
79
+ driver: local
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+
3
+ TEST_ES_SERVER=${TEST_ES_SERVER:-"http://localhost:9200"}
4
+ echo $TEST_ES_SERVER
5
+ attempt_counter=0
6
+ max_attempts=20
7
+ url="${TEST_ES_SERVER}/_cluster/health?wait_for_status=green&timeout=50s"
8
+
9
+ echo "Waiting for Elasticsearch..."
10
+ while [[ "$(curl -s -o /dev/null -w ''%{http_code}'' --max-time 55 "$url")" != "200" ]]; do
11
+ if [ ${attempt_counter} -eq ${max_attempts} ];then
12
+ echo
13
+ echo "Couldn't connect to Elasticsearch"
14
+ exit 1
15
+ fi
16
+
17
+ attempt_counter=$(($attempt_counter+1))
18
+ sleep 5
19
+ done
20
+
21
+ echo
22
+ echo "Ready"
23
+
24
+ exec "$@"
@@ -0,0 +1,13 @@
1
+ redis-server --tls-port 6379 --port 0 \
2
+ --tls-cert-file redis-server/cert.pem --tls-key-file redis-server/key.pem --tls-ca-cert-file minica.pem
3
+ redis-cli -h redis --tls \
4
+ --cert redis-client/cert.pem --key redis-client/key.pem --cacert minica.pem
5
+
6
+ redis = Redis.new(
7
+ url: "rediss://redis:6379/1",
8
+ ssl_params: {
9
+ cert: OpenSSL::X509::Certificate.new(File.read("redis-client/cert.pem")),
10
+ key: OpenSSL::PKey::RSA.new(File.read("redis-client/key.pem")),
11
+ ca_file: "./minica.pem"
12
+ }
13
+ )
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpQIBAAKCAQEApD4TG5+75/JlDdFOSRYUmfqcZJq4XqKeR2NXQbFVBhBg3Cb1
3
+ DEnXEGLJs5UtTcDSRxxJTkCHTfa6KXEqR3VvSk5SFHdS1XOCJvPnNOt0eWgsizsG
4
+ KS2Joq5pu92vsfEgjxTC1i+K/6htPoIMcIWBa7WjbcRvN0LkG9iYFx8PWLJR0NSF
5
+ fzFDGiiixMSH9OLiGQBCx6Iz/MeGfzHv7nYe8JiMADnS9pjCsAoRBIRt1Q/ke5CE
6
+ Lx5hw85X9wt6uoXFSxUMEMXekvkgtXMaC7mkOKCE1+/WAZjUCgX1uaf/P8QMTViS
7
+ 0zlhqWiVL2wVkKbvOePybAjMCOzIUR7erAv/GwIDAQABAoIBAQCSWK12A9LPTnE0
8
+ 6rey7/XTbjdEfYii6ovWWHI7muODz7w+7oeTN4hmlV/coKQJkDLOIio/i8gEdEBV
9
+ BP0DR2Su9TK2AczRXWcvhk0SHmtecrCeLy3CK01ko7ybJWGUUKMOWxVw/FQCkfUl
10
+ qYOkD5HOg77n5AylVPkkxs5ea9Kk2HHLZlfE2+1M0v/Iu/JGc6SkgFPVj4kx+Tbn
11
+ QHla7tgBNwJeB920cCMJ9ZpxoxZuk8DGDTGWOl6xpxYrzEjo3n7PQ6evIsvTMwKd
12
+ 6cTnR2Fo6FkOUPRhtSwj44/Z3HZT1BKzswopRXEQHC89FnnFVeSYpyOZEK80o+uu
13
+ YL7PO1QhAoGBANWkcfQDmFTnBZamVXRk9nTchTv9cl5siZ3q8VMoj7YA+ThDKznZ
14
+ lwfUS5vVh82HNx9L9jUfvmoWoYeOzwhEH/Z1c+dBrqN8npclaqHNGVJqFnPk6MQc
15
+ ChQK3rmtkwp38YUdEi41hufZ994RwdHTMNTx2rm7Ntzr7eFZKWAE7UI/AoGBAMTO
16
+ TodnRm8rcAH8DE23fh18AdroZzd1DSN6h9a2d80LrvP5DbR3nzNV0qyiSw/beJLZ
17
+ 7vi30hEM1zTxWkEYW5GTUS/PGO+xlSIDAuYMCQVMYi6XEBs7Px0I/fCRgfklRpoF
18
+ y+ZXhaUdtotXgcw8oT+515zRNPAf4BdNwg7dS5QlAoGBAK0uSWU5SNGCGAifuuPI
19
+ N/RREfuoHn6mUwPdAFSdq6kort1JrY+Ob5xcHhIrjJMxiaBoDiPQIKWUxMnDHNYh
20
+ ixtY6GRM3QkPqurw3LheLqmc76hwpbLa29yVVyiCqJAy3GhAQY2NvFbTXNb54/h3
21
+ zry/dMNcHEQHR+SFR0HbnIw3AoGASdcSFbGE9r74dnYn85zN/6gAVi7uUxtiw5X8
22
+ k23AwzkH+lfOcZCUNcGUmtsFiLySn56PD9iAQ49qy11mvJez+4mnY2WzeHNLfghd
23
+ NQz88XT4PXzGOUFga7ds967QcjcvJyjXmOPrq8jbLaq2c3eoFG3Y3OiNkS6UeInf
24
+ Lo6PBdUCgYEAkgbt46GTYX414MS/HI5jW1ow6dISQkOofyvSEG6wk99ZF2nS1lzj
25
+ HYpGdmDVynEAS6gFfc6PYiNr7fUFPfbCgs7uHK6AUZQJ6/rm57lcXK/0J/Vq5W8b
26
+ SHXAUzRZJrj5jEIhzEMXpmG+oyST3B9sJ5bg0Q9DerDLNJj9Q1wWI4U=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDCTCCAfGgAwIBAgIIHjPiRgsqaXkwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE
3
+ AxMVbWluaWNhIHJvb3QgY2EgMWUzM2UyMCAXDTE4MDYyNjE0MDgzNloYDzIxMTgw
4
+ NjI2MTQwODM2WjAgMR4wHAYDVQQDExVtaW5pY2Egcm9vdCBjYSAxZTMzZTIwggEi
5
+ MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkPhMbn7vn8mUN0U5JFhSZ+pxk
6
+ mrheop5HY1dBsVUGEGDcJvUMSdcQYsmzlS1NwNJHHElOQIdN9ropcSpHdW9KTlIU
7
+ d1LVc4Im8+c063R5aCyLOwYpLYmirmm73a+x8SCPFMLWL4r/qG0+ggxwhYFrtaNt
8
+ xG83QuQb2JgXHw9YslHQ1IV/MUMaKKLExIf04uIZAELHojP8x4Z/Me/udh7wmIwA
9
+ OdL2mMKwChEEhG3VD+R7kIQvHmHDzlf3C3q6hcVLFQwQxd6S+SC1cxoLuaQ4oITX
10
+ 79YBmNQKBfW5p/8/xAxNWJLTOWGpaJUvbBWQpu854/JsCMwI7MhRHt6sC/8bAgMB
11
+ AAGjRTBDMA4GA1UdDwEB/wQEAwIChDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB
12
+ BQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkqhkiG9w0BAQsFAAOCAQEAFXFL
13
+ ackPzuFWBDTlNsro/Hb4pbqzaiqrGuxQms+4vFEjCAgQ/cpF2Vlf0Kk9F8TktlwB
14
+ xHAwFfPvHYqXF4wmNlQo6gkJS957VkYC3xJVJjAU8+71qVz455j6Ty+MJEzG6GSC
15
+ YaJUimzgX0HqVyizxX9JeA7dq3vHVOhESn6RknfXlWspN90YdCXRVtyMl/bgZ8LY
16
+ ELrgQz/vtw215iJbGeb3Fsd5LaS5h0NZGDrVMcqo+C8gTrtMREODbOqZtZ/ulDQp
17
+ SGV87yUiAA3VLwLdKO7EcX1AaePlVE+vQnd/GxsomLYVKo5EjTQr179NuogHiS6H
18
+ A6bcQP0Wgcrncv2suw==
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDETCCAfmgAwIBAgIILtBgiOVdqTwwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE
3
+ AxMVbWluaWNhIHJvb3QgY2EgMWUzM2UyMB4XDTIxMDQxNTA4NTEyMloXDTIzMDUx
4
+ NTA4NTEyMlowFzEVMBMGA1UEAxMMcmVkaXMtY2xpZW50MIIBIjANBgkqhkiG9w0B
5
+ AQEFAAOCAQ8AMIIBCgKCAQEA4lFXjFM4c1PkEpQrTyNntXkyyQ0NJK0As49BwrPK
6
+ PW2CoIuk0rR0Ak6rYeOxTaYDfb29NMYMDTOIbv0AIbyzqbHafAgwtbYu2Xgwadc4
7
+ IN7C1N/hjNe2lS4WFgznVPZxP44diLTiwWjE9L3mNDPfJH8GkxGSJ/Bt3l+FG5Iw
8
+ Yzwi6/fCJ+Odj4JgXkKB7RyK/dmZT+YCEtfoo+kuHeFN8Exv5O51nQgR6uh3r4cV
9
+ cdbEDjnLUpXYo9PgQN3LVs2rtFV/Xg2vswYGWuoapDeuimnZXJpfsjjEVF4thcNR
10
+ jgpbmySrWtrtmdCqfL/IzDaQgmfPCaZ9qiwhGXojDTp3WQIDAQABo1gwVjAOBgNV
11
+ HQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1Ud
12
+ EwEB/wQCMAAwFwYDVR0RBBAwDoIMcmVkaXMtY2xpZW50MA0GCSqGSIb3DQEBCwUA
13
+ A4IBAQAOOiRLLwVmdbK/jHbC+5qg8s9KEvnC8czywtB1Zm8P9ETfGr8gqyWDLymW
14
+ +hoTMax0/Zc1DK4p18arQ6wnVXdhkku/eyT7+VwMS5YiW23bmbRuhahgMM2eFm1n
15
+ fflomJaAWmxmZBB8fb0cVY5J48YCbzIlA/4wjHIh3AiE9vqnLYQbMsFcnIAu4O2s
16
+ ZN2A31u9UJra+y2e06x4YhxpErnhkmNKMpPGd6Lyh5sLcPU/L9jKsXi3c0uzC5Hj
17
+ Nukf0KD/R/86FnpTvII17LzAwmxT3h+zk0x86LCcAxmGpo1nM9L4SllY7ZqDbuTR
18
+ Q1h5AC/naHcGkZyjSkJuRyzsq7rD
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpAIBAAKCAQEA4lFXjFM4c1PkEpQrTyNntXkyyQ0NJK0As49BwrPKPW2CoIuk
3
+ 0rR0Ak6rYeOxTaYDfb29NMYMDTOIbv0AIbyzqbHafAgwtbYu2Xgwadc4IN7C1N/h
4
+ jNe2lS4WFgznVPZxP44diLTiwWjE9L3mNDPfJH8GkxGSJ/Bt3l+FG5IwYzwi6/fC
5
+ J+Odj4JgXkKB7RyK/dmZT+YCEtfoo+kuHeFN8Exv5O51nQgR6uh3r4cVcdbEDjnL
6
+ UpXYo9PgQN3LVs2rtFV/Xg2vswYGWuoapDeuimnZXJpfsjjEVF4thcNRjgpbmySr
7
+ WtrtmdCqfL/IzDaQgmfPCaZ9qiwhGXojDTp3WQIDAQABAoIBAQDQPIHuhsAhNWZc
8
+ ReMXnP8Wth6paQ3X2isUDFM4oA8MuE+CAxs0GH/Jg7MjjcqdJIx/zO5juXprRyhY
9
+ 3weZAzTYheH/T9XpzGiNBo6dRD7L18uy7RBudCj2WIJP5a2QunT3Qn8gQzeFOC5I
10
+ 9tXy4GuH/C0Dcx5lC088Ve12ses90eLnM2K/tXZ82aNFjkSg7gl4o2efZWtS/6l0
11
+ D2OFdUKWl55uhBTqPvWt04LFndqX0cMs9csRi5JWBybMUetdzXj/gEjxKJ4JCkLW
12
+ pK6RLo6S3K6a2IWCIrs0t2YDL6asnLYtGX/2FB43wMc2/9S9GYPITO7TfOPbycZ4
13
+ 3/RbTZ4lAoGBAOV1QdGo84UE07MfoILs+kAcyh5i3tA5DylBcnMHmSw8fB/5U04o
14
+ zUA1Hjikbtud8xNrLVd+F037CjVZ4DqNc/XU7aLtzfIHzYoZrqb632wxI+jRjPa7
15
+ p2uErYW2Ku6lf1l8cKp4oXh9rrkN3btsEkIEkJA3xYrCi8F4Sr0vQMtfAoGBAPx/
16
+ GBWHHihD5ytaPyM8957e83fXIVwxN7T2oubCgkJQ4gya7dxOK6ndLpdtWMezaSxD
17
+ Y0utCP37c5bXR5J6NGcp5MzoMxN9jDaKwW0fzGwIP86s9ajwJdKwj3mQSiytSetP
18
+ dD8JpYfS83CAkavqN5XYIezV8mzxi5H0qg3cB/BHAoGAL1qMk80vPHNrkRrk0EBB
19
+ wPtwBudWnlg4NcZo7S5TQRrWbu7Qb1/iQ+7yZrQgoLgvEwHaYKUIADLfv3Tl3o+U
20
+ r9YamLZE+z76/xYfwhwiAbz+cSzVz5GYkorWGLMolwmWh4wz4Cp3AFvHtC8VZHmA
21
+ Jxm0D99CqElP+ERwAC0BTTcCgYEA3wnZmXKgpgrNUhNHAHajeXgR8wNa2Zg0UCsp
22
+ XNPmwnO2KlJU2K1IjqTtuh+CM+18cvgX50ozTj9nLJCADZjbX2G3VXWrYIUfbTKG
23
+ iEF1jtx+mK9Z1WBE2ObT5hsaGnr8d9rYobKAwQkLt44qn4Smkzu3RAD9Q1Te6BAK
24
+ g3GgpZMCgYBnq30AcnqW8HoTC0CAe1+xcToOBF3/HvjmAxTLfIDap4QT4CS2S7VI
25
+ Asc/4WoVYiDgO09Vc5IikSqYFTup6O6XRa32lWKpQfCoVEL7Hwhl6ls3YJE7ei0U
26
+ JVef2TiVmNUe4fSh45982876fE1tuKEuXoexeQ2GALwjSD75Y3+duQ==
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDHTCCAgWgAwIBAgIIWqKaX60qd4YwDQYJKoZIhvcNAQELBQAwIDEeMBwGA1UE
3
+ AxMVbWluaWNhIHJvb3QgY2EgMWUzM2UyMB4XDTIxMDQxNjE2NTk0N1oXDTIzMDUx
4
+ NjE2NTk0N1owFDESMBAGA1UEAxMJcmVkaXMtc3NsMIIBIjANBgkqhkiG9w0BAQEF
5
+ AAOCAQ8AMIIBCgKCAQEAyzV9r43FSHboputVk6txpBawPFXKQ5fbNSfyMRgZBhHa
6
+ PPqZsADXvqQypb9I+f6SqjrQ79VgYGmZ5UX7EXkgt1lpgujEqRYPp6VmolvqTkat
7
+ bedBkuDoO0TGUstXr5NnJ6VIEalUukZrzGDQJNLGKOhhctNINZ6eGoTzGAowYBUx
8
+ i6UN87odJBzKLkTLG60aodlQfPC7/78kFaraqzmufoND/jh7COY4gL/wjJUNcx6m
9
+ fPPMI8FY/W4nDbf7DuTwVl7rv9n/+WW1+e9B+6zxTZ2S6oJOVJdAlTirgHUPKHnj
10
+ Td0lhIu3+YYd1OsU56TlynAp0aZv3N8qf9HiHl7zQQIDAQABo2cwZTAOBgNVHQ8B
11
+ Af8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB
12
+ /wQCMAAwJgYDVR0RBB8wHYIJcmVkaXMtc3NsggVyZWRpc4IJbG9jYWxob3N0MA0G
13
+ CSqGSIb3DQEBCwUAA4IBAQAvhUDxKT9WiBb1prCx5o+QNrJP07nfPhRfkxS/irQb
14
+ t0BR9L3jE5BfyFMe8eA7WfLfkCOcYwVJJsTNiaFuhYmhehnR9YOxP6TcZfrJ62DI
15
+ F+C3Ef1PtZ0Nj6OyqC9SZrhZd5Xp7Ns/RLBO9vfcwOPZs9hvMJKybaM9rOdErbmk
16
+ iSBj3fU8LfpadtC1+wt4/QbRlXLEMVfS4+b42AZHFXv5yvLQvxbZdgzg7KUrCId7
17
+ nSQtLnod7ARClmpGmHRTYqEzHfdhM65t+NbwAjuTsNaQBAOSEtko81bDxpGHzN4h
18
+ 4yw8D4ZYiNb9vkm0lTQlu9PCEoiEbcbddRG8eqb0IOUM
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEpQIBAAKCAQEAyzV9r43FSHboputVk6txpBawPFXKQ5fbNSfyMRgZBhHaPPqZ
3
+ sADXvqQypb9I+f6SqjrQ79VgYGmZ5UX7EXkgt1lpgujEqRYPp6VmolvqTkatbedB
4
+ kuDoO0TGUstXr5NnJ6VIEalUukZrzGDQJNLGKOhhctNINZ6eGoTzGAowYBUxi6UN
5
+ 87odJBzKLkTLG60aodlQfPC7/78kFaraqzmufoND/jh7COY4gL/wjJUNcx6mfPPM
6
+ I8FY/W4nDbf7DuTwVl7rv9n/+WW1+e9B+6zxTZ2S6oJOVJdAlTirgHUPKHnjTd0l
7
+ hIu3+YYd1OsU56TlynAp0aZv3N8qf9HiHl7zQQIDAQABAoIBADywhBILQFFtGfzI
8
+ Ki3JNU5xbD8IzDi1wMU2YfHhpY+Xg1tU6NOU3NpWBb5Uy8HGEx1+JWqLipYg09KS
9
+ vPIx/+Bids2fISTyrsg98NIqq2anWyKIv5/TReh1mNmfW1fXqSZBCa4kqWZco9NN
10
+ Ury8qmwLQxddHKLO9Z8r98JFQL9g7KDZztPgMfSQfPZVl8h3QrnWjAkIAjdBoR9c
11
+ k8stOkL0i9esMWRKMWwHp/6tuFE/zgRvNppAYWp4YeiCHwgKaUjqUEZ7DIEEe0Ur
12
+ xUe+oCf19bfIw0+lYZ93GnvBRNXsf7301A1TeoTgWOLM8wcMXK0SsupydUXx2mZm
13
+ wSweFlUCgYEA2aJXxZkIY8W/fmnffU5WK3lhrC7Zwax9+j/A08PbB2GBDiSc6cyf
14
+ SSrgCFPDVEcRErvvZY+Knr88xE4UZOuQ07hRt6WZsojvjbnVAWPUEcBxdvocqcRJ
15
+ zkdJDcCe0GHjTfDH4uckLBO0fTn8D34tCL9ZlhRo0AueaBxPkEJkCl8CgYEA7wgm
16
+ baxpvPfyu4S+r5hGyrspGkWxOy6EWLYzcFAHkMItAh5nbsCUPKuK6vovvKol/hx6
17
+ MR42jHsKSXRrfuGIwGDYkfY9YtKv1TpY3qzaiR28UzccNvelSH36yVt/Bm2G+/o1
18
+ qEp2Se85fiO0mTHCNZ+SaVj1EHawzf/vTTRrJl8CgYEA04EFQgCueaA1sRodW37l
19
+ GYz2UkqZz7HeIHUS5frCgxLMRD1qzYDSEF59qToWa3JBcm54gsAUXKDH4pNrGIUi
20
+ k8/egtaKX0rbXGYMTzSAZdwbqR/6+TXM8I6wvY/ECAoJyLZG3An8SmXAE69len0K
21
+ MSUdYFBnaEDSaqWQ4UbUSIsCgYEArSl1VVxi2X+yO8Blt6WUG0fM9fho9Vu0iuOr
22
+ jgCcCnVwz6kg+y3N9cm8AJAwRvfoQBd3OeAOWmTERgRt32QZgmxmWA9P1yiUMt9r
23
+ BB2qz0xYYtx4tyVeeo6xQG/lLM3pzN8tQfZ3jQYd21CYg6Z1cA1irqjAGCYz3Xg8
24
+ buy7dvcCgYEApl6IdR+oL1Q7TQJQumHNJb2jJLdm3IARo042FSFsUB+ADw2/ecQm
25
+ imyK2OW1Hbo5jjgI5roG7ZMR+JZ82H0RCK1Kn1bAFVzoDuBXgtuzYgo3WhReRllc
26
+ ljOBIcFS3L2Jav3uT2NuB4/L6jYIu6QddIn3ToGuDaVT5fzKne3MODQ=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,22 @@
1
+ require_relative 'lib/elasticsearch_env_config/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "elasticsearch_env_config"
5
+ spec.version = ElasticsearchEnvConfig::VERSION
6
+ spec.authors = ["Sheldon Hearn"]
7
+ spec.email = ["sheldonh@starjuice.net"]
8
+
9
+ spec.summary = %q{Elasticsearch client configuration from environment}
10
+ spec.description = %q{Provides elasticsearch client configuration from environment variables}
11
+ spec.homepage = "https://github.com/webnifico/elasticsearch_env_config"
12
+ spec.license = "MIT"
13
+
14
+ # Specify which files should be added to the gem when it is released.
15
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
16
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
17
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ end
19
+ spec.bindir = "exe"
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ["lib"]
22
+ end
@@ -0,0 +1,24 @@
1
+ require "elasticsearch_env_config/version"
2
+
3
+ class ElasticsearchEnvConfig
4
+ class Error < StandardError; end
5
+
6
+ def initialize(env: ENV)
7
+ @env = env
8
+ end
9
+
10
+ def to_h
11
+ {}.tap do |config|
12
+ if @env.include?("ELASTICSEARCH_HOSTS")
13
+ config[:hosts] = @env.fetch("ELASTICSEARCH_HOSTS").split(/[,\s]+/)
14
+ config[:index] = @env.fetch("ELASTICSEARCH_INDEX") { raise Error, "missing environment variable ELASTICSEARCH_INDEX" }
15
+
16
+ %i[ user password date_pattern host application ].each do |key|
17
+ v = @env["ELASTICSEARCH_#{key.upcase}"]
18
+ config[key] = v if v
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,3 @@
1
+ class ElasticsearchEnvConfig
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: elasticsearch_env_config
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Sheldon Hearn
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-05-12 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Provides elasticsearch client configuration from environment variables
14
+ email:
15
+ - sheldonh@starjuice.net
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - ".gitignore"
21
+ - ".rspec"
22
+ - ".travis.yml"
23
+ - Dockerfile
24
+ - Gemfile
25
+ - Gemfile.lock
26
+ - LICENSE.txt
27
+ - README.md
28
+ - Rakefile
29
+ - bin/console
30
+ - bin/setup
31
+ - docker-compose.yml
32
+ - docker/docker-entrypoint.sh
33
+ - docker/minica/README
34
+ - docker/minica/minica-key.pem
35
+ - docker/minica/minica.pem
36
+ - docker/minica/redis-client/cert.pem
37
+ - docker/minica/redis-client/key.pem
38
+ - docker/minica/redis-ssl/cert.pem
39
+ - docker/minica/redis-ssl/key.pem
40
+ - elasticsearch_env_config.gemspec
41
+ - lib/elasticsearch_env_config.rb
42
+ - lib/elasticsearch_env_config/version.rb
43
+ homepage: https://github.com/webnifico/elasticsearch_env_config
44
+ licenses:
45
+ - MIT
46
+ metadata: {}
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubygems_version: 3.1.6
63
+ signing_key:
64
+ specification_version: 4
65
+ summary: Elasticsearch client configuration from environment
66
+ test_files: []