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 +4 -4
- data/README.md +5 -1
- data/lib/kubernetes_helper/core.rb +1 -1
- data/lib/kubernetes_helper/version.rb +1 -1
- data/lib/kubernetes_helper.rb +10 -4
- data/lib/templates/_job_liveness.yml +1 -1
- data/lib/templates/_volumes.yml +2 -1
- data/lib/templates/cd.sh +3 -0
- data/lib/templates/deployment.yml +7 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 604789c04d8c343b001119322a2f211f456f901fb8254ba7be2d460727b02523
|
4
|
+
data.tar.gz: c8de634961d39b7525311bc762257a5eb93a7e75f6aac38213b0389ff8af3187
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
25
|
+
@config_values = KubernetesHelper.load_settings
|
26
26
|
end
|
27
27
|
|
28
28
|
def parse_yml_file(file_path, output_path)
|
data/lib/kubernetes_helper.rb
CHANGED
@@ -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
|
-
|
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("
|
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
|
data/lib/templates/_volumes.yml
CHANGED
@@ -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.
|
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-
|
11
|
+
date: 2022-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: erb
|