stax-helm 0.0.12 → 0.0.15

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: 3909b351d090d040c868d10944e88a1701d66bba982d32692a278cd15fe3ebce
4
- data.tar.gz: 51bc19ccc238fff367b62128862836088efbdebff095536816f3432f2112a526
3
+ metadata.gz: e79394ad245c22bd8f38859ef5a485978a3319f1dc2097816766fba719a37da9
4
+ data.tar.gz: 7b8e69cc84f800449c21ed46ec0008ba64d5d900e535b0054da77454eea402a7
5
5
  SHA512:
6
- metadata.gz: 49dd63da8e6ce484a620c5f71f73929bf0be858cb793e7b7ad6e596e8c102dacce8d0995e086f22e372ab6695ed79a54eedfcb45b38c9a3b604a22f452e829ab
7
- data.tar.gz: 433e7b094f0baf03fc2a1690c6da212af9335dbcd8ccccfc31456db5b7c4c519394fe783856cf833f79722984647cd8e666949f47e1bb363e2fa3cf3f97ef001
6
+ metadata.gz: bec55e5a7430dc58e66a22bb2dd32a258fd2316b269b1a39a3aab6e982aab86872942e33d86d526dd614e7eea82fba9592b46a6840849546a9800ce48d257429
7
+ data.tar.gz: ec4174bfcce686383abe69285c84aa2faaec68e0dd8ab396b04a5b32860142b439549c459947896b13e483d550fa76cc835f5716014bab75c6e8e7d84f339f3b
@@ -22,6 +22,11 @@ module Stax
22
22
  def helm_selector
23
23
  "app.kubernetes.io/instance=#{helm_release_name}"
24
24
  end
25
+
26
+ ## override this to match a component in your helm release
27
+ def helm_component_selector(component)
28
+ "app.kubernetes.io/instance=#{helm_release_name},app.kubernetes.io/component=#{component}"
29
+ end
25
30
  end
26
31
 
27
32
  desc 'services', 'list services'
@@ -1,3 +1,4 @@
1
+ require 'open3'
1
2
  require 'securerandom'
2
3
 
3
4
  module Stax
@@ -38,7 +39,9 @@ module Stax
38
39
 
39
40
  ## name for Job to create based on container
40
41
  def helm_run_job
41
- "#{helm_release_name}-run-#{SecureRandom.hex(4)}"
42
+ suffix = "-run-#{SecureRandom.hex(4)}"
43
+ prefix = helm_release_name.slice(0,63-suffix.length).sub(/-+$/, '') # ensure total name is <=63 chars
44
+ prefix + suffix
42
45
  end
43
46
 
44
47
  ## default command to run
@@ -0,0 +1,32 @@
1
+ ## tasks to work on services
2
+ module Stax
3
+ module Helm
4
+ class Cmd < Base
5
+
6
+ no_commands do
7
+ def helm_services
8
+ jsonpath = '{.items[*].metadata.name}'
9
+ %x[kubectl get services -o=jsonpath='#{jsonpath}' -l #{helm_selector}].split
10
+ end
11
+ end
12
+
13
+ desc 'services', 'list services'
14
+ def services
15
+ kubectl_run(:get, :services, '-l', helm_selector)
16
+ end
17
+
18
+ map :svc => :services
19
+
20
+ desc 'port-forward', 'port forward a service'
21
+ method_option :component, aliases: '-c', type: :string, default: 'web', desc: 'component to forward'
22
+ method_option :ports, aliases: '-p', type: :array, default: nil, desc: 'local:remote ports'
23
+ def port_forward
24
+ svc = kubectl_json(:get, :svc, '-l', helm_component_selector(options[:component]))['items'].first
25
+ name = svc.dig('metadata', 'name')
26
+ ports = options.fetch(:ports, svc.dig('spec', 'ports').map { |p| p['port'] })
27
+ kubectl_run('port-forward', "service/#{name}", ports.join(' '))
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,5 @@
1
1
  module Stax
2
2
  module Helm
3
- VERSION = '0.0.12'
3
+ VERSION = '0.0.15'
4
4
  end
5
5
  end
data/lib/stax/helm.rb CHANGED
@@ -3,6 +3,7 @@ require 'stax/helm/cmd'
3
3
  require 'stax/helm/kubectl'
4
4
  require 'stax/helm/ingress'
5
5
  require 'stax/helm/pod'
6
+ require 'stax/helm/service'
6
7
  require 'stax/helm/deployment'
7
8
  require 'stax/helm/jobs'
8
9
  require 'stax/helm/cronjobs'
data/stax-helm.gemspec CHANGED
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'rake', '>= 12.3.3'
26
26
 
27
27
  spec.add_dependency('stax')
28
+ spec.add_dependency('open3')
28
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stax-helm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Lister
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-25 00:00:00.000000000 Z
11
+ date: 2022-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: open3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: Stax is a flexible set of ruby classes for wrangling your cloudformation
56
70
  stacks.
57
71
  email:
@@ -76,6 +90,7 @@ files:
76
90
  - lib/stax/helm/kubectl.rb
77
91
  - lib/stax/helm/pod.rb
78
92
  - lib/stax/helm/runcmd.rb
93
+ - lib/stax/helm/service.rb
79
94
  - lib/stax/helm/stern.rb
80
95
  - lib/stax/helm/version.rb
81
96
  - stax-helm.gemspec
@@ -98,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
113
  - !ruby/object:Gem::Version
99
114
  version: '0'
100
115
  requirements: []
101
- rubygems_version: 3.1.4
116
+ rubygems_version: 3.1.6
102
117
  signing_key:
103
118
  specification_version: 4
104
119
  summary: Control helm charts with stax.