helm_upgrade_logs 0.1.3 → 0.1.4

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: 3e1693edf80c97ce84e886a2dda47c1207768e259d2b805ad48a005aebf162c3
4
- data.tar.gz: a22c8c807b6fc7142d105f17c3481d8c166519e223cc02cb3663f28ac27c2708
3
+ metadata.gz: 864a01e8bcbdeac4562c86337446da6a9f95915ced886c546f3914eccaca9bf9
4
+ data.tar.gz: 806925901b5506f6294c5c211bd8c2df91294118441273b02af469f70938f792
5
5
  SHA512:
6
- metadata.gz: f3a5490f5fe25c03051980d54b750cb8ba23402cf0a8c168e2230d8b7be5235c74f9d2160860de1270c0641b1465020a7ce9a3d61b4ec0758fbd0e88ed01c9f2
7
- data.tar.gz: 9fc06039f972617e254b788ae850fe36d386176cac5ceceb585b113e9cc76e842558ee2460d0ac5f349469eaef2615d350958aec0aca72e603ef6b4cac5e2fb6
6
+ metadata.gz: 3bb83e455d0a989793547053ffbd46ad6be6fca3354405acf0d6f71c2a3ebafd9ef3a63e50efc6c8df079e163d1d7ed29757d9620459ea2798fe69deb4b2caa0
7
+ data.tar.gz: a2750e80477d1024c8b05a277f3ed34541c1f7860d61640ec6873f66a37e11bf652864d3c1df1603e2b6a96de227c9de31c852b70ba2593dc410cdead1c3dc3f
@@ -17,8 +17,29 @@ permissions:
17
17
  contents: read
18
18
 
19
19
  jobs:
20
- test:
21
-
20
+ demo_install_run_gem:
21
+ runs-on: ubuntu-latest
22
+ strategy:
23
+ matrix:
24
+ ruby-version: ['3.0']
25
+ steps:
26
+ - uses: actions/checkout@v3
27
+ - name: Set up Ruby
28
+ uses: ruby/setup-ruby@v1
29
+ with:
30
+ ruby-version: ${{ matrix.ruby-version }}
31
+ - name: Start KIND cluster
32
+ run: bash -f bin/start_kind.sh
33
+ - name: Waiting for KIND cluster to get ready
34
+ run: sleep 70
35
+ - name: Install gem
36
+ run: gem install helm_upgrade_logs
37
+ - name: Add bitnami repo
38
+ run: helm repo add bitnami https://charts.bitnami.com/bitnami
39
+ - name: Helm install debugging logs
40
+ run: helm_upgrade_logs --install nginx bitnami/nginx --wait --debug --set service.type=ClusterIP
41
+
42
+ test_exe:
22
43
  runs-on: ubuntu-latest
23
44
  strategy:
24
45
  matrix:
@@ -28,31 +49,9 @@ jobs:
28
49
  - uses: actions/checkout@v3
29
50
  - name: Start KIND cluster
30
51
  run: bash -f bin/start_kind.sh
31
- - name: Waiting for KIND cluster to get ready
32
- run: sleep 70
52
+ # - name: Waiting for KIND cluster to get ready
53
+ # run: sleep 70
33
54
  - name: Add bitnami repo
34
55
  run: helm repo add bitnami https://charts.bitnami.com/bitnami
35
56
  - name: Install through gem exe
36
- run: ./exe/helm_upgrade_logs --install nginx bitnami/nginx --wait --debug --set service.type=ClusterIP --replicaCount=2
37
- # - name: Check pods
38
- # run: kubectl get pods --all-namespaces
39
- # - name: Check Events
40
- # run: kubectl get events --all-namespaces
41
- #
42
- # - name: Check logs
43
- # run: kubectl logs -lapp.kubernetes.io/managed-by=Helm -f
44
- # - name: helm upgrade install
45
- # run: helm upgrade --install nginx bitnami/nginx --wait --debug --set service.type=ClusterIP
46
- # continue-on-error: true
47
- # - name: Check pods
48
- # run: sleep 15 && kubectl get pods --all-namespaces
49
- # - name: Check Events
50
- # run: sleep 7 && kubectl get events --all-namespaces
51
- # - name: Run from local
52
- # run: bash bin/helm_upgrade_logs.sh --install nginx2 bitnami/nginx --wait --debug --set service.type=ClusterIP
53
-
54
- # - name: Helm upgrade with logs
55
- # run: curl -s https://raw.githubusercontent.com/SamuelGarrattIqa/helm_upgrade_logs/main/exe/helm_upgrade_logs | bash -s -- --install nginx2 bitnami/nginx --wait
56
-
57
- # - name: Run tests
58
- # run: bundle exec rake
57
+ run: ./exe/helm_upgrade_logs --install nginx bitnami/nginx --wait --debug --set service.type=ClusterIP --set replicaCount=2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,5 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2022-04-14
3
+ ## [0.1.4] - 2022-04-16
4
4
 
5
- - Initial release
5
+ - Wait for pods with logs to start before watching
data/bin/start_kind.sh CHANGED
@@ -55,7 +55,7 @@ done
55
55
 
56
56
  # Assign Deafults
57
57
  CLUSTER_NAME=${CLUSTER_NAME:-"testcluster"} # NOT USING THIS. Does not provide benefit for 1 cluster on kind
58
- KIND_VERSION=${KIND_VERSION:-v0.11.0}
58
+ KIND_VERSION=${KIND_VERSION:-v0.12.0}
59
59
  KUBECTL_VERSION=${KUBECTL_VERSION:-v1.20.4}
60
60
  HELM_VERSION=${HELM_VERSION:-v3.8.0}
61
61
 
@@ -1,15 +1,38 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ require 'open3'
4
5
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), "..", "lib")
5
6
  require 'helm_upgrade_logs'
6
7
 
8
+ # Approach not ideal as it will for all containers to be ready and want to stream logs before that
9
+ def wait_for_container_ready
10
+ wait_pid = Process.spawn 'kubectl wait --for=condition=ContainersReady pod --selector "app.kubernetes.io/managed-by=Helm" --timeout=30s'
11
+ Process.wait wait_pid
12
+ end
13
+
14
+ # Wait for pods with logs to be present
15
+ # Not ideal due to https://github.com/kubernetes/kubernetes/issues/28746
16
+ def wait_for_pod
17
+ 90.times {
18
+ sleep 1
19
+ stdout, stderr, _ = Open3.capture3 "kubectl logs -lapp.kubernetes.io/managed-by=Helm"
20
+ if stderr.empty? && !stdout.strip.empty?
21
+ puts 'Pods with logs found'
22
+ break
23
+ else
24
+ puts "Waiting for pod logs: #{stderr}"
25
+ end
26
+ }
27
+ end
28
+
7
29
  helm_pid = Process.spawn "helm upgrade #{ARGV.join(' ')}"
8
30
 
9
31
  event_pid = Process.spawn 'kubectl get events --watch-only=true'
10
32
  service_pid = Process.spawn 'kubectl get services --watch-only=true'
11
- sleep 5
12
- log_pid = Process.spawn 'kubectl logs -lapp.kubernetes.io/managed-by=Helm -f --all-containers --prefix --pod-running-timeout=20s --ignore-errors=true --max-log-requests=20'
33
+
34
+ wait_for_pod
35
+ log_pid = Process.spawn 'kubectl logs -lapp.kubernetes.io/managed-by=Helm -f --all-containers --prefix --pod-running-timeout=20s --ignore-errors=true --max-log-requests=20 --timestamps=true'
13
36
 
14
37
  Process.wait helm_pid
15
38
  puts `kill #{log_pid}`
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HelmUpgradeLogs
4
- VERSION = "0.1.3"
4
+ VERSION = "0.1.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: helm_upgrade_logs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Garratt
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-15 00:00:00.000000000 Z
11
+ date: 2022-04-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Basic wrapper around helm and kubectl to allow easy debugging of a helm
14
14
  release. All arguments after a usual helm upgrade are used as normal