smartcloud 0.3.0 → 0.4.3
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/lib/smartcloud/apps/rails.rb +13 -3
- data/lib/smartcloud/boot.rb +1 -0
- data/lib/smartcloud/credentials.rb +9 -2
- data/lib/smartcloud/engine/Dockerfile +1 -1
- data/lib/smartcloud/engine/buildpacks/rails/Dockerfile +1 -1
- data/lib/smartcloud/grids/elasticsearch.rb +6 -7
- data/lib/smartcloud/grids/grid-minio/.keep +0 -0
- data/lib/smartcloud/grids/minio.rb +71 -0
- data/lib/smartcloud/machine.rb +10 -1
- data/lib/smartcloud/templates/dotsmartcloud/grids/grid-elasticsearch/logs/.keep +0 -0
- data/lib/smartcloud/templates/dotsmartcloud/grids/grid-minio/data/.keep +0 -0
- data/lib/smartcloud/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6229856d16664640cc0e9aa6d23906ee651ee4442637bfa5d7fed9db164f19c4
|
4
|
+
data.tar.gz: 2c81206bb6480c39388fc6cd70280ea713f38e8d6286d4c8ab5ad044aa2e47c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37eb0ba70543cb03e188c59147b7fd1244e5128cd9fd41f1c90eede73faca48f1730031ff27b97bdace860c1da18ff09b617d549525b8275fca00c874e725c78
|
7
|
+
data.tar.gz: 1df40b71466061ab2dd74ab93721168c93ce54f6da75af7f6ddf97fbffe65bb88814960ad96ed59d8a9d6dae9c26a1f090341358290c01bdb42d6f3b520e3938
|
@@ -35,10 +35,12 @@ module Smartcloud
|
|
35
35
|
FileUtils.mkdir_p("#{container_path}/app/public/assets")
|
36
36
|
FileUtils.mkdir_p("#{container_path}/app/public/packs")
|
37
37
|
FileUtils.mkdir_p("#{container_path}/app/node_modules")
|
38
|
+
FileUtils.mkdir_p("#{container_path}/app/storage")
|
38
39
|
FileUtils.mkdir_p("#{container_path_with_version}/vendor/bundle")
|
39
40
|
FileUtils.mkdir_p("#{container_path_with_version}/public/assets")
|
40
41
|
FileUtils.mkdir_p("#{container_path_with_version}/public/packs")
|
41
42
|
FileUtils.mkdir_p("#{container_path_with_version}/node_modules")
|
43
|
+
FileUtils.mkdir_p("#{container_path_with_version}/storage")
|
42
44
|
|
43
45
|
# Creating & Starting container
|
44
46
|
container_id = `docker ps -a -q --filter='name=^#{appname}_1$' --filter='status=running'`.chomp
|
@@ -58,13 +60,15 @@ module Smartcloud
|
|
58
60
|
--volume='#{container_path}/app/public/assets:/app/public/assets' \
|
59
61
|
--volume='#{container_path}/app/public/packs:/app/public/packs' \
|
60
62
|
--volume='#{container_path}/app/node_modules:/app/node_modules' \
|
63
|
+
--volume='#{container_path}/app/storage:/app/storage' \
|
61
64
|
--restart='always' \
|
62
65
|
--init \
|
63
66
|
--network='nginx-network' \
|
64
67
|
smartcloud/buildpacks/rails", out: File::NULL)
|
65
68
|
|
66
|
-
system("docker network connect mysql-network #{new_container}")
|
67
69
|
system("docker network connect elasticsearch-network #{new_container}")
|
70
|
+
system("docker network connect minio-network #{new_container}")
|
71
|
+
system("docker network connect mysql-network #{new_container}")
|
68
72
|
|
69
73
|
if system("docker start --attach #{new_container}")
|
70
74
|
logger.debug "Starting Web Server ..."
|
@@ -118,7 +122,7 @@ module Smartcloud
|
|
118
122
|
|
119
123
|
# Fix for mysql2 gem to support sha256_password, until it is fixed in main mysql2 gem.
|
120
124
|
# https://github.com/brianmario/mysql2/issues/1023
|
121
|
-
exit_status = system("mkdir ./lib/mariadb && ln -s /usr/lib/mariadb/plugin ./lib/mariadb/plugin")
|
125
|
+
exit_status = system("mkdir -p ./lib/mariadb && ln -s /usr/lib/mariadb/plugin ./lib/mariadb/plugin")
|
122
126
|
|
123
127
|
if exit_status
|
124
128
|
return true
|
@@ -133,8 +137,14 @@ module Smartcloud
|
|
133
137
|
logger.info "Performing bundle install ..."
|
134
138
|
|
135
139
|
set_logger_formatter_tabs
|
140
|
+
|
141
|
+
unless system("bundle config set deployment 'true' && bundle config set clean 'true'")
|
142
|
+
logger.error "Could not complete bundle config setting."
|
143
|
+
return false
|
144
|
+
end
|
145
|
+
|
136
146
|
exit_status = nil
|
137
|
-
Open3.popen2e("bundle", "install"
|
147
|
+
Open3.popen2e("bundle", "install") do |stdin, stdout_and_stderr, wait_thr|
|
138
148
|
stdout_and_stderr.each { |line| logger.info "#{line}" }
|
139
149
|
exit_status = wait_thr.value.success?
|
140
150
|
end
|
data/lib/smartcloud/boot.rb
CHANGED
@@ -58,12 +58,19 @@ module Smartcloud
|
|
58
58
|
username: #{SecureRandom.hex(8)}
|
59
59
|
password: #{SecureRandom.hex(16)}
|
60
60
|
|
61
|
+
minio:
|
62
|
+
hostname: #{SecureRandom.hex(8)}
|
63
|
+
access_key: #{SecureRandom.hex(8)}
|
64
|
+
secret_key: #{SecureRandom.hex(16)}
|
65
|
+
browser: on
|
66
|
+
worm: off
|
67
|
+
|
61
68
|
mysql:
|
62
69
|
port: 3306
|
63
70
|
root_password: #{SecureRandom.hex(16)}
|
64
71
|
username: #{SecureRandom.hex(8)}
|
65
72
|
password: #{SecureRandom.hex(16)}
|
66
|
-
database_name: #{SecureRandom.hex(
|
73
|
+
database_name: #{SecureRandom.hex(8)}
|
67
74
|
|
68
75
|
elasticsearch:
|
69
76
|
port: 9200
|
@@ -76,7 +83,7 @@ module Smartcloud
|
|
76
83
|
database_port: 3306
|
77
84
|
database_username: #{SecureRandom.hex(8)}_redmine
|
78
85
|
database_password: #{SecureRandom.hex(16)}
|
79
|
-
database_name: #{SecureRandom.hex(
|
86
|
+
database_name: #{SecureRandom.hex(8)}_redmine
|
80
87
|
# plugins_migrate: true
|
81
88
|
YAML
|
82
89
|
end
|
@@ -10,10 +10,8 @@ module Smartcloud
|
|
10
10
|
|
11
11
|
print "-----> Creating settings for elasticsearch ... "
|
12
12
|
|
13
|
-
vm_max_map_count_filepath = "~/.smartcloud/grids/grid-elasticsearch/vm_max_map_count"
|
14
13
|
ssh = Smartcloud::SSH.new
|
15
|
-
ssh.run "sudo sysctl
|
16
|
-
ssh.run "sudo sysctl -w vm.max_map_count=262144"
|
14
|
+
ssh.run "echo 'vm.max_map_count=262144' | sudo tee /etc/sysctl.d/60-smartcloud-elasticsearch.conf && sudo sysctl --system"
|
17
15
|
|
18
16
|
puts "done"
|
19
17
|
end
|
@@ -21,10 +19,9 @@ module Smartcloud
|
|
21
19
|
def uninstall
|
22
20
|
print "-----> Removing settings for elasticsearch ... "
|
23
21
|
|
24
|
-
vm_max_map_count_filepath = "~/.smartcloud/grids/grid-elasticsearch/vm_max_map_count"
|
25
22
|
ssh = Smartcloud::SSH.new
|
26
|
-
|
27
|
-
ssh.run "test -f
|
23
|
+
# NOTE: sysctl does not reset this setting until restart of system even after sudo sysctl --system is run.
|
24
|
+
ssh.run "test -f /etc/sysctl.d/60-smartcloud-elasticsearch.conf && sudo rm /etc/sysctl.d/60-smartcloud-elasticsearch.conf && sudo sysctl --system"
|
28
25
|
|
29
26
|
puts "done"
|
30
27
|
end
|
@@ -48,12 +45,14 @@ module Smartcloud
|
|
48
45
|
--name='elasticsearch' \
|
49
46
|
--env discovery.type=single-node \
|
50
47
|
--env cluster.name=elasticsearch-cluster \
|
51
|
-
--env bootstrap.memory_lock=true \
|
52
48
|
--env 'ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.enforce.bootstrap.checks=true' \
|
49
|
+
--env bootstrap.memory_lock=true \
|
53
50
|
--ulimit memlock=-1:-1 \
|
51
|
+
--ulimit nofile=65535:65535 \
|
54
52
|
--user `id -u`:`id -g` \
|
55
53
|
#{"--publish='#{Smartcloud.credentials.elasticsearch[:port]}:#{Smartcloud.credentials.elasticsearch[:port]}'" if exposed == '--exposed'} \
|
56
54
|
--volume='#{Smartcloud.config.user_home_path}/.smartcloud/grids/grid-elasticsearch/data:/usr/share/elasticsearch/data' \
|
55
|
+
--volume='#{Smartcloud.config.user_home_path}/.smartcloud/grids/grid-elasticsearch/logs:/usr/share/elasticsearch/logs' \
|
57
56
|
--restart='always' \
|
58
57
|
--network='elasticsearch-network' \
|
59
58
|
elasticsearch:7.4.1", out: File::NULL)
|
File without changes
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# The main Smartcloud Grids Minio driver
|
2
|
+
module Smartcloud
|
3
|
+
module Grids
|
4
|
+
class Minio < Smartcloud::Base
|
5
|
+
def initialize
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.up(*args)
|
9
|
+
args.flatten!
|
10
|
+
exposed = args.empty? ? '' : args.shift
|
11
|
+
|
12
|
+
if Smartcloud::Docker.running?
|
13
|
+
# Creating networks
|
14
|
+
unless system("docker network inspect minio-network", [:out, :err] => File::NULL)
|
15
|
+
print "-----> Creating network minio-network ... "
|
16
|
+
if system("docker network create minio-network", out: File::NULL)
|
17
|
+
puts "done"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# Creating & Starting containers
|
22
|
+
print "-----> Creating container minio ... "
|
23
|
+
if system("docker create \
|
24
|
+
--name='minio' \
|
25
|
+
--env VIRTUAL_HOST=#{Smartcloud.credentials.minio[:hostname]}.#{Smartcloud.config.apps_domain} \
|
26
|
+
--env LETSENCRYPT_HOST=#{Smartcloud.credentials.minio[:hostname]}.#{Smartcloud.config.apps_domain} \
|
27
|
+
--env LETSENCRYPT_EMAIL=#{Smartcloud.config.sysadmin_email} \
|
28
|
+
--env LETSENCRYPT_TEST=false \
|
29
|
+
--env MINIO_ACCESS_KEY=#{Smartcloud.credentials.minio[:access_key]} \
|
30
|
+
--env MINIO_SECRET_KEY=#{Smartcloud.credentials.minio[:secret_key]} \
|
31
|
+
--env MINIO_BROWSER=#{Smartcloud.credentials.minio[:browser]} \
|
32
|
+
--env MINIO_WORM=#{Smartcloud.credentials.minio[:worm]} \
|
33
|
+
--user `id -u`:`id -g` \
|
34
|
+
--volume='#{Smartcloud.config.user_home_path}/.smartcloud/grids/grid-minio/data:/data' \
|
35
|
+
--restart='always' \
|
36
|
+
--network='minio-network' \
|
37
|
+
minio/minio:RELEASE.2020-02-27T00-23-05Z server /data", out: File::NULL)
|
38
|
+
|
39
|
+
system("docker network connect nginx-network minio")
|
40
|
+
|
41
|
+
puts "done"
|
42
|
+
print "-----> Starting container minio ... "
|
43
|
+
if system("docker start minio", out: File::NULL)
|
44
|
+
puts "done"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.down
|
51
|
+
if Smartcloud::Docker.running?
|
52
|
+
# Stopping & Removing containers - in reverse order
|
53
|
+
print "-----> Stopping container minio ... "
|
54
|
+
if system("docker stop 'minio'", out: File::NULL)
|
55
|
+
puts "done"
|
56
|
+
print "-----> Removing container minio ... "
|
57
|
+
if system("docker rm 'minio'", out: File::NULL)
|
58
|
+
puts "done"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Removing networks
|
63
|
+
print "-----> Removing network minio-network ... "
|
64
|
+
if system("docker network rm minio-network", out: File::NULL)
|
65
|
+
puts "done"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/smartcloud/machine.rb
CHANGED
@@ -182,8 +182,11 @@ module Smartcloud
|
|
182
182
|
'grids',
|
183
183
|
|
184
184
|
'grids/grid-elasticsearch',
|
185
|
-
'grids/grid-elasticsearch/vm_max_map_count',
|
186
185
|
'grids/grid-elasticsearch/data/***',
|
186
|
+
'grids/grid-elasticsearch/logs/***',
|
187
|
+
|
188
|
+
'grids/grid-minio',
|
189
|
+
'grids/grid-minio/data/***',
|
187
190
|
|
188
191
|
'grids/grid-mysql',
|
189
192
|
'grids/grid-mysql/data/***',
|
@@ -219,6 +222,12 @@ module Smartcloud
|
|
219
222
|
'grids/grid-elasticsearch',
|
220
223
|
'grids/grid-elasticsearch/data',
|
221
224
|
'grids/grid-elasticsearch/data/.keep',
|
225
|
+
'grids/grid-elasticsearch/logs',
|
226
|
+
'grids/grid-elasticsearch/logs/.keep',
|
227
|
+
|
228
|
+
'grids/grid-minio',
|
229
|
+
'grids/grid-minio/data',
|
230
|
+
'grids/grid-minio/data/.keep',
|
222
231
|
|
223
232
|
'grids/grid-mysql',
|
224
233
|
'grids/grid-mysql/data',
|
File without changes
|
File without changes
|
data/lib/smartcloud/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smartcloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Timeboard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -87,6 +87,7 @@ files:
|
|
87
87
|
- lib/smartcloud/engine/buildpacks/rails/Dockerfile
|
88
88
|
- lib/smartcloud/grids/elasticsearch.rb
|
89
89
|
- lib/smartcloud/grids/grid-elasticsearch/.keep
|
90
|
+
- lib/smartcloud/grids/grid-minio/.keep
|
90
91
|
- lib/smartcloud/grids/grid-mysql/docker-entrypoint-initdb.d/.keep
|
91
92
|
- lib/smartcloud/grids/grid-nginx/.keep
|
92
93
|
- lib/smartcloud/grids/grid-prereceiver/Dockerfile
|
@@ -262,6 +263,7 @@ files:
|
|
262
263
|
- lib/smartcloud/grids/grid-solr/docker-entrypoint-initdb.d/.keep
|
263
264
|
- lib/smartcloud/grids/grid-solr/sunspot/conf/schema.xml
|
264
265
|
- lib/smartcloud/grids/grid-solr/sunspot/conf/solrconfig.xml
|
266
|
+
- lib/smartcloud/grids/minio.rb
|
265
267
|
- lib/smartcloud/grids/mysql.rb
|
266
268
|
- lib/smartcloud/grids/nginx.rb
|
267
269
|
- lib/smartcloud/grids/prereceiver.rb
|
@@ -276,6 +278,8 @@ files:
|
|
276
278
|
- lib/smartcloud/templates/dotsmartcloud/config/environment.rb
|
277
279
|
- lib/smartcloud/templates/dotsmartcloud/config/users.yml
|
278
280
|
- lib/smartcloud/templates/dotsmartcloud/grids/grid-elasticsearch/data/.keep
|
281
|
+
- lib/smartcloud/templates/dotsmartcloud/grids/grid-elasticsearch/logs/.keep
|
282
|
+
- lib/smartcloud/templates/dotsmartcloud/grids/grid-minio/data/.keep
|
279
283
|
- lib/smartcloud/templates/dotsmartcloud/grids/grid-mysql/data/.keep
|
280
284
|
- lib/smartcloud/templates/dotsmartcloud/grids/grid-nginx/certificates/.keep
|
281
285
|
- lib/smartcloud/templates/dotsmartcloud/grids/grid-nginx/fastcgi.conf
|
@@ -307,7 +311,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
307
311
|
- !ruby/object:Gem::Version
|
308
312
|
version: 1.8.11
|
309
313
|
requirements: []
|
310
|
-
rubygems_version: 3.
|
314
|
+
rubygems_version: 3.1.2
|
311
315
|
signing_key:
|
312
316
|
specification_version: 4
|
313
317
|
summary: Full-stack deployment framework for Rails.
|