kubernetes_helper 1.1 → 1.5

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: 3bed0753481fee12fa822da715a6836b55fb561deaca02e8763e59d05b3edc6b
4
- data.tar.gz: 28d56d40d55c667e479ee26126fc7014415afec77ee884eb58daac2c4e60809e
3
+ metadata.gz: 0cb2f960ab9f32029afa3d4a925fc83214ab418e599a6a5390dfc5bf829949b4
4
+ data.tar.gz: d64116a047e22ba97848ae36d7cbedc40af6ed726f5d5b22614aafa11b416677
5
5
  SHA512:
6
- metadata.gz: d4d8b5606a4d3d9649de1add4341dcea076e2892e2d908d24f1cce5c14fb206b9bd779da7546544634b0341806163f3949f98c24bdd9a0a16dbf4149fa597117
7
- data.tar.gz: 331f4263fb0ad4fd29bda318f079e36e0954c58bd8a50dc4507e49d0e88043afcfe03a8bad22390d5776042bd07837d4232c5b7879a06074870369274866537d
6
+ metadata.gz: 96a1085608ca8a96c40126075272665ecdf477de54775cc77caee257996c1ba9e070e6b6a0f9da598359394286233ae3e2c4cd68f19e6cb11f6e3f03ad5ecd49
7
+ data.tar.gz: e32e8e082431c44d18ce92a33094db31c696d3f2b7810f21bbf8497592daf8378a205725bfe7269ca8773987fdf5e7a0976ce2e1f27c9b6cb16d763ed4c29b4b
@@ -22,7 +22,7 @@ module KubernetesHelper
22
22
 
23
23
  # @param _env_name (String)
24
24
  def initialize(_env_name)
25
- @config_values = KubernetesHelper.load_settings
25
+ @config_values = KubernetesHelper.default_settings.merge(KubernetesHelper.load_settings)
26
26
  end
27
27
 
28
28
  def parse_yml_file(file_path, output_path)
@@ -115,6 +115,8 @@ module KubernetesHelper
115
115
  def parse_documents(yml_data)
116
116
  documents = []
117
117
  Array(yml_data).each do |document|
118
+ next unless document
119
+
118
120
  document['documents'] ? documents.push(*document['documents']) : documents.push(document)
119
121
  end
120
122
  documents
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KubernetesHelper
4
- VERSION = '1.1'
4
+ VERSION = '1.5'
5
5
  end
@@ -20,6 +20,14 @@ module KubernetesHelper
20
20
  settings
21
21
  end
22
22
 
23
+ def self.default_settings
24
+ {
25
+ cloud: {
26
+ name: 'gcloud'
27
+ }
28
+ }
29
+ end
30
+
23
31
  def self.settings_path(file_name = nil, use_template: false)
24
32
  path = File.join(Dir.pwd, FOLDER_NAME)
25
33
  if file_name
File without changes
@@ -0,0 +1,7 @@
1
+ apiVersion: networking.gke.io/v1beta1
2
+ kind: ManagedCertificate
3
+ metadata:
4
+ name: '<%=ingress.certificate_name%>'
5
+ spec:
6
+ domains: # does not support for willcard domains
7
+ - '<%=ingress.domain_name%>'
@@ -54,6 +54,11 @@ documents:
54
54
  readOnly: true
55
55
  <% end %>
56
56
 
57
+ <% (deployment.custom_volumes || {}).each do |name, vol| %>
58
+ - name: <%= name %>
59
+ mountPath: <%= vol[:mount_path] %>
60
+ <% end %>
61
+
57
62
  <% if deployment.cloud_secret_name %>
58
63
  - &cloudsql_container
59
64
  image: gcr.io/cloudsql-docker/gce-proxy:1.09 # Cloud sql proxy
@@ -61,6 +66,7 @@ documents:
61
66
  command: ["/cloud_sql_proxy", "--dir=/cloudsql",
62
67
  "-instances=<%=deployment.cloud_sql_instance%>",
63
68
  "-credential_file=/secrets/gcloud/credentials.json"]
69
+ env: []
64
70
  volumeMounts:
65
71
  - *cloud_credentials_volume
66
72
  <% end %>
@@ -68,7 +74,8 @@ documents:
68
74
  - &logs_container # print to stdout all log files
69
75
  name: print-logs
70
76
  image: busybox
71
- command: [/bin/sh, -c, 'until find log/*.log; do sleep 1; done; tail -n+1 -f log/*.log']
77
+ command: [/bin/sh, -c, 'until find /app/log/*.log; do sleep 1; done; tail -n+1 -f /app/log/*.log']
78
+ env: []
72
79
  volumeMounts:
73
80
  - *log_volume
74
81
 
@@ -83,6 +90,17 @@ documents:
83
90
  - name: applog
84
91
  emptyDir: {}
85
92
 
93
+ # Custom volumes
94
+ # { my_volume: { kind: 'hostPath', mount_path: '/', settings: { path: '..', type: 'Directory' } } }
95
+ <% (deployment.custom_volumes || {}).each do |name, vol| %>
96
+ - name: <%= name %>
97
+ <%= vol[:kind] %>:
98
+ <% vol[:settings].each do |k, v| %>
99
+ <%= k %>: <%= v %>
100
+ <% end %>
101
+ <% end %>
102
+
103
+
86
104
  <% if deployment.job_name %>
87
105
  - apiVersion: apps/v1
88
106
  kind: Deployment
@@ -108,7 +126,7 @@ documents:
108
126
  <% end %>
109
127
 
110
128
  <% if deployment.job_sidekiq_alive_gem %>
111
- <%= include_template "_sidekiq_alive_gem.yml.erb" %>
129
+ <%= include_template "_sidekiq_alive_gem.yml" %>
112
130
  <% else %>
113
131
  ports: [ ]
114
132
  <% if (deployment.job_services || []).any? %>
@@ -132,5 +150,5 @@ documents:
132
150
  <% end %>
133
151
 
134
152
  <% if deployment.replicas_range %>
135
- <%= include_template "_replicas.yml.erb" %>
153
+ <%= include_template "_replicas.yml" %>
136
154
  <% end %>
@@ -1,11 +1,5 @@
1
1
  <% if ingress.domain_name %>
2
- apiVersion: networking.gke.io/v1beta1
3
- kind: ManagedCertificate
4
- metadata:
5
- name: '<%=ingress.certificate_name%>'
6
- spec:
7
- domains: # does not support for willcard domains
8
- - '<%=ingress.domain_name%>'
2
+ <%= include_template "certificate.yml" %>
9
3
  <% end %>
10
4
 
11
5
  ---
@@ -1,3 +1,4 @@
1
+ <% if cloud.name == 'gcloud' %>
1
2
  ---
2
3
  # used to increase request timeout
3
4
  apiVersion: cloud.google.com/v1beta1
@@ -6,16 +7,17 @@ metadata:
6
7
  name: '<%=service.config_name%>'
7
8
  spec:
8
9
  timeoutSec: 1800
9
-
10
10
  ---
11
-
11
+ <% end %>
12
12
 
13
13
  kind: Service
14
14
  apiVersion: v1
15
15
  metadata:
16
16
  name: '<%=service.name%>'
17
17
  annotations:
18
+ <% if cloud.name == 'gcloud' %>
18
19
  beta.cloud.google.com/backend-config: '{"ports": {"80":"<%=service.config_name%>"}}'
20
+ <% end %>
19
21
  spec:
20
22
  selector:
21
23
  name: '<%=deployment.name%>'
@@ -14,6 +14,7 @@ settings = {
14
14
  # job_name: "#{app_name}-job", # enable if there is any background service
15
15
  # job_command: 'bundle exec sidekiq -C config/sidekiq.yml',
16
16
  # job_services: ['sidekiq', 'cron'] # list of linux services needed.
17
+ # custom_volumes: { my_volume: { kind: 'hostPath', mount_path: '/', settings: { path: '..', type: 'Directory' } } }
17
18
  },
18
19
  ingress: {
19
20
  name: "#{app_name}-ingress",
@@ -26,7 +27,7 @@ settings = {
26
27
  project_name: 'my-project-name',
27
28
  cluster_name: 'my-cluster-name',
28
29
  cluster_region: 'europe-west4-a',
29
- docker_build_cmd: 'build -f Dockerfile'
30
+ docker_build_cmd: 'build -f Dockerfile' # using target: 'build --target production -f Dockerfile '
30
31
  },
31
32
  secrets: {
32
33
  name: "#{app_name}-secrets"
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.1'
4
+ version: '1.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - owen2345
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-06 00:00:00.000000000 Z
11
+ date: 2021-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: erb
@@ -40,9 +40,10 @@ files:
40
40
  - lib/kubernetes_helper/railtie.rb
41
41
  - lib/kubernetes_helper/version.rb
42
42
  - lib/templates/README.md
43
- - lib/templates/_replicas.yml.erb
44
- - lib/templates/_sidekiq_alive_gem.yml.erb
43
+ - lib/templates/_replicas.yml
44
+ - lib/templates/_sidekiq_alive_gem.yml
45
45
  - lib/templates/cd.sh
46
+ - lib/templates/certificate.yml
46
47
  - lib/templates/deployment.yml
47
48
  - lib/templates/ingress.yml
48
49
  - lib/templates/secrets.yml