kubernetes_helper 1.11.1 → 1.12

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 284a91c77c6a5aa796e2593eadbdcecd85a5b52e35ae7bb6dbd53cde80ef7067
4
- data.tar.gz: dfe726e21ba3a03de4ad9cb272922d5f253b306f8a16996954f7efa29595a5f5
3
+ metadata.gz: 604789c04d8c343b001119322a2f211f456f901fb8254ba7be2d460727b02523
4
+ data.tar.gz: c8de634961d39b7525311bc762257a5eb93a7e75f6aac38213b0389ff8af3187
5
5
  SHA512:
6
- metadata.gz: e8ccc2bd6661de602e7eb2f21935fa16a8ddb344d3130f3ee7d8331025552675538cf321236b40360f119a58768700d85b9b80cabbc98fa0093e7d5ce337572f
7
- data.tar.gz: 4b3185c7eb890ff9acb7e8ecdafbf85176f7a2e2703cd54e8fc1f0f4abe54b9112a00a27c1a2039c5cc5a718b17d1fd3a33eae9212d8b1764c0210babf02be04
6
+ metadata.gz: 2dd5e15b7bdf468a7dabd64079060efea3d9e0858817cc2da7e3b37fa2537a207ba0188165e05a8c7fa935025ec3e4e34e9c73bc2f3b1234997e9d4c309bf83b
7
+ data.tar.gz: 99eb1af9d2ba8bf5fab45341248fa1d467c8bd27ca814b30d149eeebdd068b0d975e882ee50d03eac3ab584f02bc286ad2f48ff3329ba753ffe8bc4070f96203
data/README.md CHANGED
@@ -71,7 +71,11 @@ Below settings are used when configuring the application in the k8s environment
71
71
  - `deployment.env_vars` (Hash, optional): List of static env variables (Note: Not recommended for sensitive values). Sample: `{ 'RAILS_ENV' => 'production' }`
72
72
  - `deployment.command` (String, Optional): Bash command to be used for web containers. Sample: `rails s -b 0.0.0.0`
73
73
  - `deployment.liveness_path` (String, Optional): Relative path to be used for readiness and liveness checker of the web app. Sample: `/check_liveness`
74
- - `deployment.custom_volumes` (Hash<name: path>, Optional): Custom volumes to be mounted. Sample: `{ my_volume: { kind: 'hostPath', mount_path: '/', settings: { path: '..', type: 'Directory' } } }`
74
+ - `deployment.custom_volumes` (Hash<name: path>, Optional): Custom volumes to be mounted.
75
+ Sample volume: `{ my_volume: { kind: 'hostPath', mount_path: '/', settings: { path: '..', type: 'Directory' } } }`
76
+ Sample secret: `{ pubsub_secret: { kind: 'secret', mount_path: '/secrets/pubsub', settings: { secretName: 'my_secret_name' } } }`
77
+ - `deployment.log_container` (Boolean, default true): Permits to auto include logs container to print all logs from logs/*.log to stdout (required for papertrail using fluentd)
78
+ - `deployment.app_port` (Integer, default 3000): Application port number
75
79
 
76
80
  - `deployment.job_name` (String, optional): Job deployment name (Note: Underscores are not accepted). Sample: `my-app-job`. Note: This deployment is created only if this value is present
77
81
  - `deployment.job_command` (String, optional): Bash command to be used for job container. Sample: `bundle exec sidekiq`
@@ -22,7 +22,7 @@ module KubernetesHelper
22
22
 
23
23
  # @param _env_name (String)
24
24
  def initialize(_env_name)
25
- @config_values = KubernetesHelper.default_settings.merge(KubernetesHelper.load_settings)
25
+ @config_values = KubernetesHelper.load_settings
26
26
  end
27
27
 
28
28
  def parse_yml_file(file_path, output_path)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KubernetesHelper
4
- VERSION = '1.11.1'
4
+ VERSION = '1.12'
5
5
  end
@@ -17,15 +17,21 @@ module KubernetesHelper
17
17
  def self.load_settings
18
18
  config_file = File.join(settings_path, 'settings.rb')
19
19
  load config_file
20
- settings
21
- end
22
20
 
23
- def self.default_settings
24
- {
21
+ def_settings = {
25
22
  cloud: {
26
23
  name: 'gcloud'
24
+ },
25
+ deployment: {
26
+ log_container: true
27
27
  }
28
28
  }
29
+ deep_merge(def_settings, settings || {})
30
+ end
31
+
32
+ def self.deep_merge(hash1, hash2)
33
+ merger = proc { |_key, v1, v2| v1.kind_of?(Hash) && v2.kind_of?(Hash) ? v1.merge(v2, &merger) : v2 }
34
+ hash1.merge(hash2, &merger)
29
35
  end
30
36
 
31
37
  def self.settings_path(file_name = nil, use_template: false)
@@ -3,7 +3,7 @@
3
3
  livenessProbe: &liveness_probe
4
4
  exec:
5
5
  command: [ /bin/sh, -c,
6
- 'if [ $(ps -ef | grep "<%= deployment.job_services.join("\|") %>" | grep -v "grep" | wc -l) -lt <%= deployment.job_services.count %> ]; then
6
+ 'if [ $(ps -ef | grep "<%= deployment.job_services.join("\\|") %>" | grep -v "grep" | wc -l) -lt <%= deployment.job_services.count %> ]; then
7
7
  echo "Some required services are not running"; exit 1;
8
8
  fi' ]
9
9
  initialDelaySeconds: 120
@@ -4,11 +4,12 @@
4
4
  secretName: '<%=deployment.cloud_secret_name%>'
5
5
  <% end %>
6
6
 
7
+ <% if deployment.log_container %>
7
8
  - name: applog
8
9
  emptyDir: {}
10
+ <% end %>
9
11
 
10
12
  # Custom volumes
11
- # { my_volume: { kind: 'hostPath', mount_path: '/', settings: { path: '..', type: 'Directory' } } }
12
13
  <% (deployment.custom_volumes || {}).each do |name, vol| %>
13
14
  - name: <%= name %>
14
15
  <%= vol[:kind] %>:
data/lib/templates/cd.sh CHANGED
@@ -41,9 +41,12 @@ ALREADY_DEPLOYED="$(gcloud container images list-tags --format='get(tags)' $IMAG
41
41
  if [ -z $ALREADY_DEPLOYED ]
42
42
  then
43
43
  ## Build and push containers
44
+ echo "****** image not created yet, building image..."
44
45
  docker $DOCKER_BUILD_CMD -t $DEPLOY_NAME .
45
46
  docker push $DEPLOY_NAME
46
47
  fi
48
+
49
+ echo "****** tagging image $DEPLOY_NAME as $LATEST_NAME"
47
50
  docker tag $DEPLOY_NAME $LATEST_NAME
48
51
  docker push $LATEST_NAME
49
52
 
@@ -29,7 +29,7 @@ documents:
29
29
  static_env: true
30
30
  import_secrets: ['secrets.yml', '<%=secrets.name%>']
31
31
  ports:
32
- - containerPort: &port 3000
32
+ - containerPort: &port <% deployment.app_port || 3000 %>
33
33
  name: '<%=service.backend_port_name%>'
34
34
 
35
35
  <% if deployment.liveness_path %>
@@ -45,9 +45,11 @@ documents:
45
45
  <%= include_template "_container_extra_settings.yml", { pod: 'web' } %>
46
46
 
47
47
  volumeMounts:
48
+ <% if deployment.log_container %>
48
49
  - &log_volume
49
50
  name: applog
50
51
  mountPath: /app/log
52
+ <% end %>
51
53
 
52
54
  <% if deployment.cloud_secret_name %>
53
55
  - &cloud_credentials_volume
@@ -74,6 +76,7 @@ documents:
74
76
  <%= include_template "_container_extra_settings.yml", { pod: 'cloudsql' } %>
75
77
  <% end %>
76
78
 
79
+ <% if deployment.log_container %>
77
80
  - &logs_container # print to stdout all log files
78
81
  name: print-logs
79
82
  image: busybox
@@ -82,6 +85,7 @@ documents:
82
85
  volumeMounts:
83
86
  - *log_volume
84
87
  <%= include_template "_container_extra_settings.yml", { pod: 'logs' } %>
88
+ <% end %>
85
89
 
86
90
  <%= include_template "_custom_containers.yml", { pod: 'web' } %>
87
91
 
@@ -125,7 +129,9 @@ documents:
125
129
  - *cloudsql_container
126
130
  <% end %>
127
131
 
132
+ <% if deployment.log_container %>
128
133
  - <<: *logs_container
134
+ <% end %>
129
135
 
130
136
  <%= include_template "_custom_containers.yml", { pod: 'job' } %>
131
137
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubernetes_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.1
4
+ version: '1.12'
5
5
  platform: ruby
6
6
  authors:
7
7
  - owen2345
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-09 00:00:00.000000000 Z
11
+ date: 2022-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: erb