oci-logging-analytics-kubernetes-discovery 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +40 -0
- data/.travis.yml +6 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +36 -0
- data/README.md +83 -0
- data/Rakefile +15 -0
- data/bin/console +17 -0
- data/bin/oci-loganalytics-kubernetes-discovery +184 -0
- data/bin/setup +12 -0
- data/lib/config/oci_client_retry_config.rb +34 -0
- data/lib/discover/infrastructure.rb +122 -0
- data/lib/discover/object.rb +347 -0
- data/lib/dto/infra/cluster_entity_payload.rb +22 -0
- data/lib/dto/infra/load_balancers_entity_payload.rb +22 -0
- data/lib/dto/infra/node_pool_entity_payload.rb +24 -0
- data/lib/dto/infra/subnet_entity_payload.rb +22 -0
- data/lib/dto/infra/vcn_entity_payload.rb +22 -0
- data/lib/dto/infra_objects_payload.rb +40 -0
- data/lib/dto/kubernetes_objects_payload.rb +58 -0
- data/lib/dto/payload/log_events.rb +26 -0
- data/lib/dto/payload/log_events_json.rb +22 -0
- data/lib/dto/state.rb +19 -0
- data/lib/enum/auth_type_enum.rb +9 -0
- data/lib/enum/infrastructure_resource_discovery.rb +9 -0
- data/lib/enum/kubernetes_objects_enum.rb +22 -0
- data/lib/enum/object_client_mapping_enum.rb +21 -0
- data/lib/infra_resources.rb +91 -0
- data/lib/objects_resources.rb +174 -0
- data/lib/oci_loganalytics_resources_discovery.rb +293 -0
- data/lib/util/kube_client.rb +141 -0
- data/lib/util/kubectl_ops.rb +229 -0
- data/lib/util/log_analytics.rb +154 -0
- data/lib/util/logging.rb +96 -0
- data/lib/util/oci_clients.rb +228 -0
- data/lib/util/state_manager.rb +61 -0
- data/lib/util/string_utils.rb +16 -0
- data/lib/version.rb +6 -0
- data/oci-logging-analytics-kubernetes-discovery.gemspec +45 -0
- metadata +324 -0
@@ -0,0 +1,228 @@
|
|
1
|
+
## Copyright (c) 2024 Oracle and/or its affiliates.
|
2
|
+
## The Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
3
|
+
|
4
|
+
require 'oci'
|
5
|
+
|
6
|
+
require_relative '../util/logging'
|
7
|
+
require_relative '../enum/auth_type_enum'
|
8
|
+
require_relative '../config/oci_client_retry_config'
|
9
|
+
|
10
|
+
module Util
|
11
|
+
module OCIClients
|
12
|
+
extend Util::Logging
|
13
|
+
|
14
|
+
module_function
|
15
|
+
|
16
|
+
attr_accessor :oci_clients, :ce_client, :id_client, :lb_client, :la_client, :rs_client, :vnc_client,
|
17
|
+
:oci_config, :instance_principals_signer, :auth_type, :endpoint, :auth_config_object
|
18
|
+
|
19
|
+
def create_clients(auth_object, options)
|
20
|
+
begin
|
21
|
+
@la_client = initialize_la_client(auth_object, nil)
|
22
|
+
|
23
|
+
if options[:mode] == 'object'
|
24
|
+
set_clients
|
25
|
+
return
|
26
|
+
end
|
27
|
+
|
28
|
+
@ce_client = initialize_ce_client(auth_object)
|
29
|
+
@id_client = initialize_id_client(auth_object)
|
30
|
+
@lb_client = initialize_lb_client(auth_object)
|
31
|
+
@rs_client = initialize_rs_client(auth_object)
|
32
|
+
@vnc_client = initialize_vnc_client(auth_object)
|
33
|
+
rescue StandardError => e
|
34
|
+
logger.error("Error while creating OCI clients. Error: #{e}")
|
35
|
+
raise e
|
36
|
+
end
|
37
|
+
set_clients
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
|
41
|
+
def initialize_ce_client(auth_object)
|
42
|
+
client = nil
|
43
|
+
logger.debug("Creating container engine client with auth_type: #{auth_object[:auth_type]}")
|
44
|
+
begin
|
45
|
+
case auth_object[:auth_type]
|
46
|
+
when Enum::AuthTypeEnum::CONFIG
|
47
|
+
client = OCI::ContainerEngine::ContainerEngineClient.new(config: auth_object[:oci_config])
|
48
|
+
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
49
|
+
client = OCI::ContainerEngine::ContainerEngineClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
50
|
+
else
|
51
|
+
logger.warn("Unknown auth_type '#{auth_object[:auth_type]}' provided for container engine client.")
|
52
|
+
end
|
53
|
+
@ce_client = client
|
54
|
+
rescue StandardError => e
|
55
|
+
logger.error("Error while creating container engine client: #{e}")
|
56
|
+
raise e
|
57
|
+
end
|
58
|
+
client
|
59
|
+
end
|
60
|
+
|
61
|
+
def initialize_id_client(auth_object)
|
62
|
+
client = nil
|
63
|
+
logger.debug("Creating identity client with auth_type: #{auth_object[:auth_type]}")
|
64
|
+
begin
|
65
|
+
case auth_object[:auth_type]
|
66
|
+
when Enum::AuthTypeEnum::CONFIG
|
67
|
+
client = OCI::Identity::IdentityClient.new(config: auth_object[:oci_config])
|
68
|
+
when Enum::AuthTypeEnum::ENDPOINT
|
69
|
+
client = OCI::Identity::IdentityClient.new(config: auth_object[:oci_config], endpoint: auth_object[:endpoint])
|
70
|
+
when Enum::AuthTypeEnum::PRINCIPAL
|
71
|
+
client = OCI::Identity::IdentityClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
72
|
+
else
|
73
|
+
logger.warn("Unknown auth_type '#{auth_object[:auth_type]}' provided for identity client.")
|
74
|
+
end
|
75
|
+
@id_client = client
|
76
|
+
rescue StandardError => e
|
77
|
+
logger.error("Error while creating identity client: #{e}")
|
78
|
+
raise e
|
79
|
+
end
|
80
|
+
@id_client
|
81
|
+
end
|
82
|
+
|
83
|
+
def initialize_lb_client(auth_object)
|
84
|
+
client = nil
|
85
|
+
logger.debug("Creating load balancer client with auth_type: #{auth_object[:auth_type]}")
|
86
|
+
begin
|
87
|
+
case auth_object[:auth_type]
|
88
|
+
when Enum::AuthTypeEnum::CONFIG
|
89
|
+
client = OCI::LoadBalancer::LoadBalancerClient.new(config: auth_object[:oci_config])
|
90
|
+
when Enum::AuthTypeEnum::ENDPOINT
|
91
|
+
client = OCI::LoadBalancer::LoadBalancerClient.new(config: auth_object[:oci_config], endpoint: auth_object[:endpoint])
|
92
|
+
when Enum::AuthTypeEnum::PRINCIPAL
|
93
|
+
client = OCI::LoadBalancer::LoadBalancerClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
94
|
+
else
|
95
|
+
logger.warn("Unknown auth_type '#{auth_object[:auth_type]}' provided for load balancer client.")
|
96
|
+
end
|
97
|
+
@lb_client = client
|
98
|
+
rescue StandardError => e
|
99
|
+
logger.error("Error while creating load balancer client: #{e}")
|
100
|
+
raise e
|
101
|
+
end
|
102
|
+
@lb_client
|
103
|
+
end
|
104
|
+
|
105
|
+
def initialize_la_client(auth_object, custom_retry_config)
|
106
|
+
client = nil
|
107
|
+
logger.debug("Creating log analytics client with auth_type: #{auth_object[:auth_type]}")
|
108
|
+
Config::OCIClientRetryConfig.set_custom_retry_config(custom_retry_config) unless custom_retry_config.nil?
|
109
|
+
|
110
|
+
begin
|
111
|
+
case auth_object[:auth_type]
|
112
|
+
when Enum::AuthTypeEnum::CONFIG
|
113
|
+
client = OCI::LogAnalytics::LogAnalyticsClient.new(config: auth_object[:oci_config],
|
114
|
+
endpoint: auth_object[:endpoint],
|
115
|
+
retry_config: Config::OCIClientRetryConfig.get_retry_config)
|
116
|
+
when Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
117
|
+
client = OCI::LogAnalytics::LogAnalyticsClient.new(config: auth_object[:oci_config],
|
118
|
+
endpoint: auth_object[:endpoint],
|
119
|
+
signer: auth_object[:instance_principals_signer],
|
120
|
+
retry_config: Config::OCIClientRetryConfig.get_retry_config)
|
121
|
+
else
|
122
|
+
logger.warn("Unknown auth_type while creating log analytics client: #{auth_object[:auth_type]}")
|
123
|
+
raise StandardError, 'Unknown auth_type for log analytics client.'
|
124
|
+
end
|
125
|
+
@la_client = client
|
126
|
+
rescue StandardError => e
|
127
|
+
logger.error("Error while creating log analytics client: #{e}")
|
128
|
+
raise e
|
129
|
+
end
|
130
|
+
@la_client
|
131
|
+
end
|
132
|
+
|
133
|
+
def initialize_rs_client(auth_object)
|
134
|
+
client = nil
|
135
|
+
logger.debug("Creating resource search client with auth_type: #{auth_object[:auth_type]}")
|
136
|
+
begin
|
137
|
+
case auth_object[:auth_type]
|
138
|
+
when Enum::AuthTypeEnum::CONFIG
|
139
|
+
client = OCI::ResourceSearch::ResourceSearchClient.new(config: auth_object[:oci_config])
|
140
|
+
when Enum::AuthTypeEnum::ENDPOINT
|
141
|
+
client = OCI::ResourceSearch::ResourceSearchClient.new(config: auth_object[:oci_config], endpoint: auth_object[:endpoint])
|
142
|
+
when Enum::AuthTypeEnum::PRINCIPAL
|
143
|
+
client = OCI::ResourceSearch::ResourceSearchClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
144
|
+
else
|
145
|
+
logger.warn("Unknown auth_type '#{auth_object[:auth_type]}' provided for resource search client.")
|
146
|
+
end
|
147
|
+
@rs_client = client
|
148
|
+
rescue StandardError => e
|
149
|
+
logger.error("Error while creating resource search client: #{e}")
|
150
|
+
raise e
|
151
|
+
end
|
152
|
+
@rs_client
|
153
|
+
end
|
154
|
+
|
155
|
+
def initialize_vnc_client(auth_object)
|
156
|
+
client = nil
|
157
|
+
logger.debug("Creating virtual network client with auth_type: #{auth_object[:auth_type]}")
|
158
|
+
begin
|
159
|
+
case auth_object[:auth_type]
|
160
|
+
when Enum::AuthTypeEnum::CONFIG
|
161
|
+
client = OCI::Core::VirtualNetworkClient.new(config: auth_object[:oci_config])
|
162
|
+
when Enum::AuthTypeEnum::ENDPOINT
|
163
|
+
client = OCI::Core::VirtualNetworkClient.new(config: auth_object[:oci_config], endpoint: auth_object[:endpoint])
|
164
|
+
when Enum::AuthTypeEnum::PRINCIPAL
|
165
|
+
client = OCI::Core::VirtualNetworkClient.new(config: auth_object[:oci_config], signer: auth_object[:instance_principals_signer])
|
166
|
+
else
|
167
|
+
logger.warn("Unknown auth_type '#{auth_object[:auth_type]}' provided for virtual network client.")
|
168
|
+
end
|
169
|
+
@vnc_client = client
|
170
|
+
rescue StandardError => e
|
171
|
+
logger.error("Error while creating virtual network client: #{e}")
|
172
|
+
raise e
|
173
|
+
end
|
174
|
+
@vnc_client
|
175
|
+
end
|
176
|
+
|
177
|
+
def initialize_auth_config(auth_config_hash)
|
178
|
+
@endpoint = auth_config_hash[:endpoint]
|
179
|
+
|
180
|
+
begin
|
181
|
+
if !auth_config_hash[:config_file_location].nil? && !auth_config_hash[:profile_name].nil?
|
182
|
+
@oci_config = OCI::ConfigFileLoader.load_config(config_file_location: auth_config_hash[:config_file_location],
|
183
|
+
profile_name: auth_config_hash[:profile_name])
|
184
|
+
end
|
185
|
+
|
186
|
+
if !@oci_config.nil?
|
187
|
+
@auth_type = Enum::AuthTypeEnum::CONFIG
|
188
|
+
else
|
189
|
+
@oci_config = OCI::Config.new
|
190
|
+
@instance_principals_signer = instance_principals_signer = OCI::Auth::Signers::InstancePrincipalsSecurityTokenSigner.new
|
191
|
+
@auth_type = Enum::AuthTypeEnum::INSTANCE_PRINCIPAL
|
192
|
+
end
|
193
|
+
rescue StandardError => e
|
194
|
+
logger.error("Error occurred while initializing OCI authentication configuration. Error: #{e}")
|
195
|
+
raise e
|
196
|
+
end
|
197
|
+
set_auth_config_object
|
198
|
+
end
|
199
|
+
|
200
|
+
def get_clients
|
201
|
+
@oci_clients
|
202
|
+
end
|
203
|
+
|
204
|
+
def set_clients
|
205
|
+
@oci_clients = {
|
206
|
+
ce_client: @ce_client,
|
207
|
+
id_client: @id_client,
|
208
|
+
lb_client: @lb_client,
|
209
|
+
la_client: @la_client,
|
210
|
+
rs_client: @rs_client,
|
211
|
+
vnc_client: @vnc_client
|
212
|
+
}
|
213
|
+
end
|
214
|
+
|
215
|
+
def get_auth_config_object
|
216
|
+
@auth_object
|
217
|
+
end
|
218
|
+
|
219
|
+
def set_auth_config_object
|
220
|
+
@auth_object = {
|
221
|
+
oci_config: @oci_config,
|
222
|
+
endpoint: @endpoint,
|
223
|
+
instance_principals_signer: @instance_principals_signer,
|
224
|
+
auth_type: @auth_type
|
225
|
+
}.compact
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
## Copyright (c) 2024 Oracle and/or its affiliates.
|
2
|
+
## The Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
3
|
+
|
4
|
+
require_relative '../util/logging'
|
5
|
+
require_relative '../dto/state'
|
6
|
+
require_relative '../util/kubectl_ops'
|
7
|
+
require 'json'
|
8
|
+
|
9
|
+
module Util
|
10
|
+
module StateManager
|
11
|
+
extend Util::Logging
|
12
|
+
|
13
|
+
EVENTS_TRACKER_CM = 'discovery-state-tracker'.freeze
|
14
|
+
|
15
|
+
@is_intialized = false
|
16
|
+
|
17
|
+
module_function
|
18
|
+
|
19
|
+
def init(prefix, namespace)
|
20
|
+
return if @is_intialized
|
21
|
+
|
22
|
+
@events_tracker_configmap = prefix + '-' + EVENTS_TRACKER_CM
|
23
|
+
@namespace = namespace
|
24
|
+
@state = Dto::State.new
|
25
|
+
state_config_map = Util::KubectlOps.get_configmap(@events_tracker_configmap, @namespace)
|
26
|
+
if state_config_map.nil?
|
27
|
+
# This is first instance of cronjob execution
|
28
|
+
# therefore, events tracker configmap does not exist in cluster
|
29
|
+
logger.info("configmap/#{@events_tracker_configmap} not found.")
|
30
|
+
@state.last_timestamp = 0 # 1 January 1970 00:00
|
31
|
+
begin
|
32
|
+
Util::KubectlOps.create_configmap(@events_tracker_configmap, @namespace, @state.to_hash)
|
33
|
+
rescue KubeException => e
|
34
|
+
logger.error("Missing permission to create config map in namespace - #{@namespace}")
|
35
|
+
raise e
|
36
|
+
end
|
37
|
+
logger.info("Created new Configmap - #{@events_tracker_configmap}.")
|
38
|
+
else
|
39
|
+
last_timestamp = state_config_map[:data][:last_timestamp]
|
40
|
+
logger.info("timestamp fetched from configmap - #{last_timestamp} - #{Time.at(last_timestamp.to_i).getutc}")
|
41
|
+
@state.last_timestamp = last_timestamp.to_i
|
42
|
+
end
|
43
|
+
@is_intialized = true
|
44
|
+
end
|
45
|
+
|
46
|
+
def init_check
|
47
|
+
raise StandardError, 'Method call before initializig Module - StateManager' unless @is_intialized
|
48
|
+
end
|
49
|
+
|
50
|
+
def state
|
51
|
+
init_check
|
52
|
+
@state
|
53
|
+
end
|
54
|
+
|
55
|
+
def update_state_configmap
|
56
|
+
init_check
|
57
|
+
Util::KubectlOps.patch_configmap(@events_tracker_configmap, @namespace, @state.to_hash)
|
58
|
+
logger.info("Updated configmap - #{@events_tracker_configmap} with new state.")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
## Copyright (c) 2024 Oracle and/or its affiliates.
|
2
|
+
## The Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
3
|
+
|
4
|
+
module Util
|
5
|
+
module StringUtils
|
6
|
+
def format_option_selections(option_array)
|
7
|
+
option_selections = ''
|
8
|
+
option_segregator = '|'
|
9
|
+
option_array.each_with_index do |value, index|
|
10
|
+
option_selections.concat(value.downcase).concat(option_array.size == (index + 1) ? '' : option_segregator)
|
11
|
+
end
|
12
|
+
option_selections.prepend('{')
|
13
|
+
option_selections.concat('}')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/version.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
## Copyright (c) 2024 Oracle and/or its affiliates.
|
2
|
+
## The Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
3
|
+
|
4
|
+
require_relative 'lib/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'oci-logging-analytics-kubernetes-discovery'
|
8
|
+
spec.version = Discovery::VERSION
|
9
|
+
spec.authors = ['Oracle', 'OCI Observability: Logging Analytics']
|
10
|
+
spec.email = ['oci_la_plugins_grp@oracle.com']
|
11
|
+
|
12
|
+
spec.summary = 'A rubygem for discovering Kubernetes resources and send it to OCI Logging Analytics.'
|
13
|
+
spec.description = 'A rubygem for discovering Kubernetes resources and send it to OCI Logging Analytics.'
|
14
|
+
spec.homepage = 'https://rubygems.org/gems/oci-logging-analytics-kubernetes-discovery'
|
15
|
+
spec.license = 'UPL-1.0'
|
16
|
+
|
17
|
+
# Specify which files should be added to the gem when it is released.
|
18
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
19
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
20
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
21
|
+
end
|
22
|
+
spec.bindir = 'bin'
|
23
|
+
spec.executables << 'oci-loganalytics-kubernetes-discovery'
|
24
|
+
spec.require_paths = ['lib']
|
25
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
|
26
|
+
|
27
|
+
spec.add_development_dependency 'bundler', '~> 2.3.3'
|
28
|
+
spec.add_development_dependency 'forking_test_runner', '~> 1.13.0'
|
29
|
+
spec.add_development_dependency 'httplog', '~> 1.6.2'
|
30
|
+
spec.add_development_dependency 'minitest', '~> 5.15.0'
|
31
|
+
spec.add_development_dependency 'minitest-rg', '~> 5.3.0'
|
32
|
+
spec.add_development_dependency 'mocha', '~> 1.5'
|
33
|
+
spec.add_development_dependency 'pry', '~> 0.14.2'
|
34
|
+
spec.add_development_dependency 'rake', '~> 13.1.0'
|
35
|
+
spec.add_development_dependency 'rubocop', '~> 1.3.0'
|
36
|
+
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
37
|
+
spec.add_development_dependency 'test-unit', '~> 3.0'
|
38
|
+
spec.add_development_dependency 'webmock', '~> 3.0'
|
39
|
+
|
40
|
+
spec.add_runtime_dependency 'concurrent-ruby', '~> 1.2.2'
|
41
|
+
spec.add_runtime_dependency 'kubeclient', '~> 4.9.3'
|
42
|
+
spec.add_runtime_dependency 'oci', '~> 2.20.0'
|
43
|
+
spec.add_runtime_dependency 'rubyzip', '~> 2.3.2'
|
44
|
+
spec.add_runtime_dependency 'yajl-ruby', '~> 1.0'
|
45
|
+
end
|
metadata
ADDED
@@ -0,0 +1,324 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: oci-logging-analytics-kubernetes-discovery
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Oracle
|
8
|
+
- 'OCI Observability: Logging Analytics'
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2024-02-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 2.3.3
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 2.3.3
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: forking_test_runner
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 1.13.0
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 1.13.0
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: httplog
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.6.2
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.6.2
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: minitest
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 5.15.0
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 5.15.0
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: minitest-rg
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 5.3.0
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 5.3.0
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: mocha
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '1.5'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '1.5'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: pry
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 0.14.2
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 0.14.2
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rake
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ~>
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 13.1.0
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 13.1.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rubocop
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ~>
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 1.3.0
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ~>
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 1.3.0
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: simplecov
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ~>
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 0.22.0
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ~>
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 0.22.0
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: test-unit
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ~>
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '3.0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ~>
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '3.0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: webmock
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ~>
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '3.0'
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ~>
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '3.0'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: concurrent-ruby
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ~>
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: 1.2.2
|
189
|
+
type: :runtime
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ~>
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: 1.2.2
|
196
|
+
- !ruby/object:Gem::Dependency
|
197
|
+
name: kubeclient
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
199
|
+
requirements:
|
200
|
+
- - ~>
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: 4.9.3
|
203
|
+
type: :runtime
|
204
|
+
prerelease: false
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
206
|
+
requirements:
|
207
|
+
- - ~>
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: 4.9.3
|
210
|
+
- !ruby/object:Gem::Dependency
|
211
|
+
name: oci
|
212
|
+
requirement: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - ~>
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: 2.20.0
|
217
|
+
type: :runtime
|
218
|
+
prerelease: false
|
219
|
+
version_requirements: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ~>
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: 2.20.0
|
224
|
+
- !ruby/object:Gem::Dependency
|
225
|
+
name: rubyzip
|
226
|
+
requirement: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
228
|
+
- - ~>
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: 2.3.2
|
231
|
+
type: :runtime
|
232
|
+
prerelease: false
|
233
|
+
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
requirements:
|
235
|
+
- - ~>
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: 2.3.2
|
238
|
+
- !ruby/object:Gem::Dependency
|
239
|
+
name: yajl-ruby
|
240
|
+
requirement: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - ~>
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '1.0'
|
245
|
+
type: :runtime
|
246
|
+
prerelease: false
|
247
|
+
version_requirements: !ruby/object:Gem::Requirement
|
248
|
+
requirements:
|
249
|
+
- - ~>
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '1.0'
|
252
|
+
description: A rubygem for discovering Kubernetes resources and send it to OCI Logging
|
253
|
+
Analytics.
|
254
|
+
email:
|
255
|
+
- oci_la_plugins_grp@oracle.com
|
256
|
+
executables:
|
257
|
+
- oci-loganalytics-kubernetes-discovery
|
258
|
+
extensions: []
|
259
|
+
extra_rdoc_files: []
|
260
|
+
files:
|
261
|
+
- .gitignore
|
262
|
+
- .travis.yml
|
263
|
+
- Gemfile
|
264
|
+
- LICENSE.txt
|
265
|
+
- README.md
|
266
|
+
- Rakefile
|
267
|
+
- bin/console
|
268
|
+
- bin/oci-loganalytics-kubernetes-discovery
|
269
|
+
- bin/setup
|
270
|
+
- lib/config/oci_client_retry_config.rb
|
271
|
+
- lib/discover/infrastructure.rb
|
272
|
+
- lib/discover/object.rb
|
273
|
+
- lib/dto/infra/cluster_entity_payload.rb
|
274
|
+
- lib/dto/infra/load_balancers_entity_payload.rb
|
275
|
+
- lib/dto/infra/node_pool_entity_payload.rb
|
276
|
+
- lib/dto/infra/subnet_entity_payload.rb
|
277
|
+
- lib/dto/infra/vcn_entity_payload.rb
|
278
|
+
- lib/dto/infra_objects_payload.rb
|
279
|
+
- lib/dto/kubernetes_objects_payload.rb
|
280
|
+
- lib/dto/payload/log_events.rb
|
281
|
+
- lib/dto/payload/log_events_json.rb
|
282
|
+
- lib/dto/state.rb
|
283
|
+
- lib/enum/auth_type_enum.rb
|
284
|
+
- lib/enum/infrastructure_resource_discovery.rb
|
285
|
+
- lib/enum/kubernetes_objects_enum.rb
|
286
|
+
- lib/enum/object_client_mapping_enum.rb
|
287
|
+
- lib/infra_resources.rb
|
288
|
+
- lib/objects_resources.rb
|
289
|
+
- lib/oci_loganalytics_resources_discovery.rb
|
290
|
+
- lib/util/kube_client.rb
|
291
|
+
- lib/util/kubectl_ops.rb
|
292
|
+
- lib/util/log_analytics.rb
|
293
|
+
- lib/util/logging.rb
|
294
|
+
- lib/util/oci_clients.rb
|
295
|
+
- lib/util/state_manager.rb
|
296
|
+
- lib/util/string_utils.rb
|
297
|
+
- lib/version.rb
|
298
|
+
- oci-logging-analytics-kubernetes-discovery.gemspec
|
299
|
+
homepage: https://rubygems.org/gems/oci-logging-analytics-kubernetes-discovery
|
300
|
+
licenses:
|
301
|
+
- UPL-1.0
|
302
|
+
metadata: {}
|
303
|
+
post_install_message:
|
304
|
+
rdoc_options: []
|
305
|
+
require_paths:
|
306
|
+
- lib
|
307
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
308
|
+
requirements:
|
309
|
+
- - '>='
|
310
|
+
- !ruby/object:Gem::Version
|
311
|
+
version: 2.7.0
|
312
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
313
|
+
requirements:
|
314
|
+
- - '>='
|
315
|
+
- !ruby/object:Gem::Version
|
316
|
+
version: '0'
|
317
|
+
requirements: []
|
318
|
+
rubyforge_project:
|
319
|
+
rubygems_version: 2.0.14.1
|
320
|
+
signing_key:
|
321
|
+
specification_version: 4
|
322
|
+
summary: A rubygem for discovering Kubernetes resources and send it to OCI Logging
|
323
|
+
Analytics.
|
324
|
+
test_files: []
|