zilla 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42000f50525f6778f9716b61a752ca838f2b273cb1d32e25f66ce25d37f298ac
4
- data.tar.gz: fa89ba54836a145629ceefa5ce2619cf4c2d7df4c66f7989b1ae56af371c4b5d
3
+ metadata.gz: 3fb607c85e1db49bbd53ccb44d3ec15f6c01b8287e24e54f67d0ec83ae954b3d
4
+ data.tar.gz: 26149adaa9b61ba54a61be617e81c2fd4bf1629674fe2931547d97c3c9d69c1a
5
5
  SHA512:
6
- metadata.gz: 2c12636b69c39827d5841cd700cab021bce42df00000a9fd4d64c38edaf451184ea4fa2f565bd73fddcfcca9034ec13729cc2a94d47f3a3393b0caf1b6477249
7
- data.tar.gz: 53dc9ced782088c1f1bca4bfd9111e50bbc5b720b7c8ebc39e0d37aa0530987f36d606add9a1dfd4f5cad89b4b5cad2fc9ba2611b8cf4b3a8844ddd129a05d5d
6
+ metadata.gz: b3d8b5e02b2ef451ca9fb68c6e97f7bb898efc4db2e4a3bcd78486e3bf1aa78806a5bf9d402096a9b33107a02c85e220477293d021b0f4be39dff67c540289bb
7
+ data.tar.gz: 7b55b43f27e823c6fbd83ba4b8f3893ee1ea1be62e1b003fad92d42b98ca523137dcbce58eed3ab9fb8e8c3766a55fe52a4d5862e74e076052a4cf398f152923
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zilla (0.2.1)
4
+ zilla (0.2.2)
5
5
  faraday (>= 1.0.1, < 3.0)
6
6
  faraday-multipart (~> 1.0.0)
7
7
 
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Zilla
4
+ class Kubernetes
5
+ SERVICE_ACCOUNT_PATH = '/var/run/secrets/kubernetes.io/serviceaccount'
6
+
7
+ TOKEN_PATH = "#{SERVICE_ACCOUNT_PATH}/token".freeze
8
+ CERT_PATH = "#{SERVICE_ACCOUNT_PATH}/ca.crt".freeze
9
+ NAMESPACE_PATH = "#{SERVICE_ACCOUNT_PATH}/namespace".freeze
10
+
11
+ # https://github.com/rails/rails/blob/7-0-stable/activesupport/lib/active_support/inflector/methods.rb#LL96-L104C8
12
+ def self._underscore_string(camel_cased_word)
13
+ return camel_cased_word.to_s unless /[A-Z-]|::/.match?(camel_cased_word)
14
+
15
+ word = camel_cased_word.to_s.gsub('::', '/')
16
+ word.gsub!(/(?:(?<=([A-Za-z\d]))|\b)((?=a)b)(?=\b|[^a-z])/) { "#{::Regexp.last_match(1) && '_'}#{::Regexp.last_match(2).downcase}" }
17
+ word.gsub!(/([A-Z])(?=[A-Z][a-z])|([a-z\d])(?=[A-Z])/) { (::Regexp.last_match(1) || ::Regexp.last_match(2)) << '_' }
18
+ word.tr!('-', '_')
19
+ word.downcase!
20
+ word
21
+ end
22
+
23
+ def initialize(host: nil, scheme: :http, config: nil, token: nil, current_namespace: nil)
24
+ if [host, config].all?(&:nil?) || [host, config].none?(&:nil?)
25
+ raise ArgumentError, 'either host or config must be passed'
26
+ end
27
+
28
+ @host = host
29
+ @scheme = scheme
30
+ @config = config
31
+ @token = token
32
+ @current_namespace = current_namespace
33
+ end
34
+
35
+ def current_namespace = @current_namespace ||= ENV.fetch('KUBERNETES_NAMESPACE') { read_file(NAMESPACE_PATH) }
36
+
37
+ # for every single available API define methods like
38
+ # def apps_v1_api = @apps_v1_api ||= Zilla::AppsV1Api.new(client)
39
+ Zilla.constants(false).each do |class_name|
40
+ next unless class_name.end_with?('Api')
41
+
42
+ define_method(_underscore_string(class_name.to_s)) do
43
+ var = "@#{class_name}"
44
+ return instance_variable_get(var) if instance_variable_defined?(var)
45
+
46
+ instance_variable_set(var, Zilla.const_get(class_name).new(client))
47
+ end
48
+ end
49
+
50
+ def client = @client ||= Zilla::ApiClient.new(config)
51
+
52
+ def in_cluster? = [TOKEN_PATH, CERT_PATH, NAMESPACE_PATH].all?(File.method(:exist?))
53
+
54
+ def config
55
+ @config ||= Zilla::Configuration.new.tap do |cfg|
56
+ cfg.host = @host
57
+ cfg.scheme = @scheme
58
+ cfg.server_index = nil
59
+ cfg.api_key_prefix['BearerToken'] = 'Bearer'
60
+
61
+ next unless in_cluster?
62
+
63
+ cfg.ssl_ca_file = CERT_PATH
64
+ cfg.api_key['BearerToken'] = token
65
+ end
66
+ end
67
+
68
+ def token = @token ||= read_file(TOKEN_PATH)
69
+
70
+ private
71
+
72
+ def read_file(path) = File.read(path)
73
+ end
74
+ end
data/lib/zilla/version.rb CHANGED
@@ -11,5 +11,5 @@
11
11
  #
12
12
 
13
13
  module Zilla
14
- VERSION = '0.2.1'
14
+ VERSION = '0.2.2'
15
15
  end
data/lib/zilla.rb CHANGED
@@ -575,6 +575,9 @@ require 'zilla/api/storage_v1beta1_api'
575
575
  require 'zilla/api/version_api'
576
576
  require 'zilla/api/well_known_api'
577
577
 
578
+ # Custom files
579
+ require 'zilla/kubernetes'
580
+
578
581
  module Zilla
579
582
  class << self
580
583
  # Customize default settings for the SDK using block.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zilla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-23 00:00:00.000000000 Z
11
+ date: 2023-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -138,6 +138,7 @@ files:
138
138
  - lib/zilla/api_client.rb
139
139
  - lib/zilla/api_error.rb
140
140
  - lib/zilla/configuration.rb
141
+ - lib/zilla/kubernetes.rb
141
142
  - lib/zilla/models/io_k8s_api_admissionregistration_v1_mutating_webhook.rb
142
143
  - lib/zilla/models/io_k8s_api_admissionregistration_v1_mutating_webhook_configuration.rb
143
144
  - lib/zilla/models/io_k8s_api_admissionregistration_v1_mutating_webhook_configuration_list.rb