rubypitaya 2.18.0 → 2.21.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rubypitaya/app-template/Gemfile +1 -1
  3. data/lib/rubypitaya/app-template/Gemfile.lock +7 -8
  4. data/lib/rubypitaya/app-template/Makefile +1 -1
  5. data/lib/rubypitaya/app-template/Rakefile +5 -10
  6. data/lib/rubypitaya/app-template/app/bll/player_bll.rb +1 -1
  7. data/lib/rubypitaya/app-template/app/config/initial_player.json +4 -1
  8. data/lib/rubypitaya/app-template/app/setup/rubypitaya.yml +27 -0
  9. data/lib/rubypitaya/app-template/bin/console +1 -2
  10. data/lib/rubypitaya/app-template/docker-compose.yml +0 -11
  11. data/lib/rubypitaya/app-template/docker/dev/Dockerfile +11 -6
  12. data/lib/rubypitaya/app-template/docker/entrypoint.sh +5 -4
  13. data/lib/rubypitaya/app-template/docker/prod/Dockerfile +16 -7
  14. data/lib/rubypitaya/app-template/docker/wait_for.sh +184 -0
  15. data/lib/rubypitaya/app-template/features/player.feature +1 -1
  16. data/lib/rubypitaya/app-template/helm/Chart.yaml +4 -0
  17. data/lib/rubypitaya/app-template/helm/templates/config-maps/nginx-config.yaml +9 -0
  18. data/lib/rubypitaya/app-template/helm/templates/deployments/connector.yaml +38 -0
  19. data/lib/rubypitaya/app-template/helm/templates/deployments/gameserver-nginx.yaml +40 -0
  20. data/lib/rubypitaya/app-template/helm/templates/deployments/rubypitaya.yaml +67 -0
  21. data/lib/rubypitaya/app-template/helm/templates/role-bindings/rubypitaya.yaml +12 -0
  22. data/lib/rubypitaya/app-template/helm/templates/roles/rubypitaya.yaml +31 -0
  23. data/lib/rubypitaya/app-template/helm/templates/service-accounts/rubypitaya.yaml +4 -0
  24. data/lib/rubypitaya/app-template/helm/templates/services/connector.yaml +13 -0
  25. data/lib/rubypitaya/app-template/helm/templates/services/etcd.yaml +18 -0
  26. data/lib/rubypitaya/app-template/helm/templates/services/gameserver-nginx.yaml +20 -0
  27. data/lib/rubypitaya/app-template/helm/templates/services/gameserver.yaml +20 -0
  28. data/lib/rubypitaya/app-template/helm/templates/services/nats.yaml +13 -0
  29. data/lib/rubypitaya/app-template/helm/templates/services/redis.yaml +14 -0
  30. data/lib/rubypitaya/app-template/helm/templates/services/rubypitaya.yaml +13 -0
  31. data/lib/rubypitaya/app-template/helm/templates/statefulsets/etcd.yaml +28 -0
  32. data/lib/rubypitaya/app-template/helm/templates/statefulsets/nats.yaml +26 -0
  33. data/lib/rubypitaya/app-template/helm/templates/statefulsets/redis.yaml +26 -0
  34. data/lib/rubypitaya/app-template/helm/values.yaml +36 -0
  35. data/lib/rubypitaya/app-template/kubernetes/deployment-rubypitaya.yaml +10 -14
  36. data/lib/rubypitaya/app-template/spec/player_handler_spec.rb +4 -3
  37. data/lib/rubypitaya/core/config.rb +10 -1
  38. data/lib/rubypitaya/core/database_config.rb +15 -10
  39. data/lib/rubypitaya/core/handler_base.rb +11 -0
  40. data/lib/rubypitaya/core/handler_router.rb +3 -11
  41. data/lib/rubypitaya/core/helpers/setup_helper.rb +1 -2
  42. data/lib/rubypitaya/core/http_routes.rb +33 -3
  43. data/lib/rubypitaya/core/main.rb +16 -13
  44. data/lib/rubypitaya/core/path.rb +0 -2
  45. data/lib/rubypitaya/core/setup.rb +10 -0
  46. data/lib/rubypitaya/core/spec-helpers/config_spec_helper.rb +2 -2
  47. data/lib/rubypitaya/core/spec-helpers/handler_spec_helper.rb +3 -1
  48. data/lib/rubypitaya/version.rb +1 -1
  49. metadata +37 -18
  50. data/lib/rubypitaya/app-template/app/setup/initial_player.yml +0 -2
  51. data/lib/rubypitaya/app-template/config/database.yml +0 -20
@@ -22,27 +22,23 @@ spec:
22
22
  - containerPort: 4567
23
23
  name: rubypitaya
24
24
  env:
25
- - name: SERVER_NAME
26
- value: "rubypitaya"
27
- - name: RUBYPITAYA_ENV
25
+ - name: RUBYPITAYA_SERVER_ENVIRONMENT
28
26
  value: "production"
29
- - name: NATS_URL
27
+ - name: RUBYPITAYA_NATS_URL
30
28
  value: "nats://nats.default.svc.cluster.local:4222"
31
- - name: ETCD_URL
29
+ - name: RUBYPITAYA_ETCD_URL
32
30
  value: "http://etcd.default.svc.cluster.local:2379"
33
- - name: ETCD_PREFIX
34
- value: "rubypitaya/"
35
- - name: ETCD_LEASE_SECONDS
36
- value: "60"
37
- - name: REDIS_URL
31
+ - name: RUBYPITAYA_REDIS_URL
38
32
  value: "redis://redis.default.svc.cluster.local:6379"
39
- - name: DATABASE_HOST
33
+ - name: RUBYPITAYA_DATABASE_HOST
40
34
  value: "postgres.default.svc.cluster.local"
41
- - name: DATABASE_USER
35
+ - name: RUBYPITAYA_DATABASE_USER
42
36
  value: "postgres"
43
- - name: DATABASE_PASSWORD
37
+ - name: RUBYPITAYA_DATABASE_PORT
38
+ value: "5432"
39
+ - name: RUBYPITAYA_DATABASE_PASSWORD
44
40
  value: "postgres"
45
- - name: DATABASE_NAME
41
+ - name: RUBYPITAYA_DATABASE_NAME
46
42
  value: "ruby_pitaya"
47
43
  imagePullSecrets:
48
44
  - name: gitlab-registry
@@ -3,10 +3,11 @@ require 'spec_helper'
3
3
  RSpec.describe 'PlayerHandler', type: :request do
4
4
  context 'authenticate' do
5
5
  it 'create_new_user' do
6
- setup = {'initial_player' => {'wallet' => {'gold' => 10}}}
7
- config = {'initial_player' => {'name' => 'Guest'}}
6
+ config = {'initial_player' => {
7
+ 'name' => 'Guest',
8
+ 'wallet' => {'gold' => 10},
9
+ }}
8
10
 
9
- set_setup(setup)
10
11
  set_config(config)
11
12
 
12
13
  params = {}
@@ -9,6 +9,7 @@ module RubyPitaya
9
9
  @config_core_override = nil
10
10
  @has_config_core_override = false
11
11
 
12
+ @empty_hash = {}
12
13
  @result_cache = {}
13
14
  end
14
15
 
@@ -18,15 +19,23 @@ module RubyPitaya
18
19
 
19
20
  if @has_config_core_override
20
21
  result = @config_core_override[key]
22
+ result = @config_core[key] if result.nil?
21
23
  else
22
24
  result = @config_core[key]
23
25
  end
24
26
 
25
- @result_cache[key] = result.deep_symbolize_keys
27
+ @result_cache[key] = result
26
28
 
27
29
  result
28
30
  end
29
31
 
32
+ def fetch(*args)
33
+ result = self[args[0]]
34
+ return result unless result.nil?
35
+
36
+ @empty_hash.fetch(*args)
37
+ end
38
+
30
39
  def auto_reload
31
40
  @config_core.auto_reload
32
41
  @config_core_override.auto_reload unless @config_core_override.nil?
@@ -1,21 +1,30 @@
1
1
  require 'erb'
2
2
  require 'yaml'
3
3
 
4
- require 'rubypitaya/core/path'
4
+ require 'rubypitaya/core/setup'
5
5
 
6
6
  module RubyPitaya
7
7
 
8
8
  class DatabaseConfig
9
9
 
10
- def initialize(environment_name, database_config_path)
11
- @environment_name = environment_name
10
+ def initialize()
11
+ @setup = Setup.new
12
+
13
+ @config = {
14
+ 'adapter' => 'postgresql',
15
+ 'encoding' => 'unicode',
16
+ 'pool' => @setup.fetch('rubypitaya.database.pool', 5),
17
+ 'host' => @setup['rubypitaya.database.host'],
18
+ 'user' => @setup['rubypitaya.database.user'],
19
+ 'password' => @setup['rubypitaya.database.password'],
20
+ 'database' => @setup['rubypitaya.database.name'],
21
+ }
12
22
 
13
- yaml_contents = File.open(database_config_path).read
14
- @config = YAML.load( ERB.new(yaml_contents).result )
23
+ @config['database'] = "#{@config['database']}_test" if @environment_name == 'test'
15
24
  end
16
25
 
17
26
  def config
18
- @config[@environment_name]
27
+ @config
19
28
  end
20
29
 
21
30
  def connection_data
@@ -44,9 +53,5 @@ module RubyPitaya
44
53
  def database_name
45
54
  config['database']
46
55
  end
47
-
48
- def migrations_path
49
- @migrations_path
50
- end
51
56
  end
52
57
  end
@@ -17,6 +17,17 @@ module RubyPitaya
17
17
  @postman = nil
18
18
  end
19
19
 
20
+ def set_attributes(bll, log, redis, setup, config, params, session, postman)
21
+ @bll = bll
22
+ @log = log
23
+ @redis = redis
24
+ @setup = setup
25
+ @config = config
26
+ @params = params
27
+ @session = session
28
+ @postman = postman
29
+ end
30
+
20
31
  def self.non_authenticated_actions(*action_names)
21
32
  self.non_authenticated_routes = action_names.map(&:to_s)
22
33
  end
@@ -62,8 +62,7 @@ module RubyPitaya
62
62
  msg: "Handler #{handler_name} not founded"
63
63
  }
64
64
  end
65
-
66
- unless @handler_name_map[handler_name].methods.include?(action_name.to_sym)
65
+ unless @handler_name_map[handler_name].public_methods(false).include?(action_name.to_sym)
67
66
  return {
68
67
  code: StatusCodes::CODE_ACTION_NOT_FOUND,
69
68
  msg: "Handler #{handler_name} action #{action_name} not founded"
@@ -72,19 +71,12 @@ module RubyPitaya
72
71
 
73
72
  handler = @handler_name_map[handler_name]
74
73
 
75
- handler.bll = bll
76
- handler.log = log
77
- handler.redis = redis
78
- handler.setup = setup
79
- handler.config = config
80
- handler.params = params
81
- handler.session = session
82
- handler.postman = postman
83
-
84
74
  if !handler.class.authenticated_action_name?(action_name)
75
+ handler.set_attributes(bll, log, redis, setup, config, params, session, postman)
85
76
  handler.send(action_name)
86
77
  else
87
78
  if session.authenticated?
79
+ handler.set_attributes(bll, log, redis, setup, config, params, session, postman)
88
80
  handler.send(action_name)
89
81
  else
90
82
  return {
@@ -3,8 +3,7 @@ require 'active_record'
3
3
  require 'rubypitaya/core/database_config'
4
4
 
5
5
  # Database connection
6
- environment_name = ENV.fetch("RUBYPITAYA_ENV") { 'development' }
7
- database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
6
+ database_config = RubyPitaya::DatabaseConfig.new
8
7
  ActiveRecord::Base.establish_connection(database_config.connection_data)
9
8
  # ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)
10
9
  # ActiveSupport::LogSubscriber.colorize_logging = true
@@ -1,13 +1,13 @@
1
1
  require 'sinatra/base'
2
- require 'sinatra/reloader' if ENV['RUBYPITAYA_ENV'] == 'development'
3
2
  require 'rubypitaya/core/parameters'
4
3
 
5
4
  module RubyPitaya
6
5
 
7
6
  class HttpRoutes < Sinatra::Base
8
7
 
9
- if ENV['RUBYPITAYA_ENV'] == 'development'
10
- register Sinatra::Reloader
8
+ def self.auto_reload
9
+ require 'sinatra/reloader'
10
+ register ::Sinatra::Reloader
11
11
  end
12
12
 
13
13
  helpers do
@@ -23,6 +23,10 @@ module RubyPitaya
23
23
  @setup = settings.setup
24
24
  @config = settings.config
25
25
 
26
+ return error_unauthorized unless authorized?(request)
27
+
28
+ @config.clear_cache
29
+
26
30
  if request.content_type == 'application/json'
27
31
  request_body = request.body.read
28
32
  @params.merge!(JSON.parse(request_body)) if !request_body.blank?
@@ -30,5 +34,31 @@ module RubyPitaya
30
34
 
31
35
  @params = Parameters.new(@params)
32
36
  end
37
+
38
+ private
39
+
40
+ def error_unauthorized
41
+ return halt(401, 'Unauthorized')
42
+ end
43
+
44
+ def authorized?(request)
45
+ return true unless http_auth_enabled?
46
+
47
+ auth_token = request.env['HTTP_AUTHORIZATION']
48
+ return auth_token == get_http_auth
49
+ end
50
+
51
+ def http_auth_enabled?
52
+ return @setup.fetch('rubypitaya.http.auth.enabled') { 'false' } == 'true'
53
+ end
54
+
55
+ def get_http_auth
56
+ user = @setup.fetch('rubypitaya.http.auth.user') { '' }
57
+ pass = @setup.fetch('rubypitaya.http.auth.pass') { '' }
58
+
59
+ auth_token = ::Base64.strict_encode64("#{user}:#{pass}")
60
+
61
+ return "Basic #{auth_token}"
62
+ end
33
63
  end
34
64
  end
@@ -30,8 +30,10 @@ module RubyPitaya
30
30
  attr_reader :redis_connector, :config, :bll
31
31
 
32
32
  def initialize
33
- @environment_name = ENV.fetch("RUBYPITAYA_ENV") { 'development' }
33
+ @setup = Setup.new
34
+ @environment_name = @setup.fetch('rubypitaya.server.environment', 'development')
34
35
  @is_development_environment = @environment_name == 'development'
36
+ @setup.auto_reload if @is_development_environment
35
37
 
36
38
  @log = Logger.new('/proc/self/fd/1')
37
39
  @log.level = Logger::INFO
@@ -43,13 +45,13 @@ module RubyPitaya
43
45
  @application_files_importer.import
44
46
  @application_files_importer.auto_reload if @is_development_environment
45
47
 
46
- @server_name = ENV['SERVER_NAME']
48
+ @server_name = @setup['rubypitaya.server.name']
47
49
  @service_uuid = SecureRandom.uuid
48
50
  @desktop_name = Socket.gethostname
49
51
 
50
- @etcd_prefix = ENV['ETCD_PREFIX']
51
- @etcd_address = ENV['ETCD_URL']
52
- @etcd_lease_seconds = ENV['ETCD_LEASE_SECONDS'].to_i
52
+ @etcd_prefix = @setup['rubypitaya.etcd.prefix']
53
+ @etcd_address = @setup['rubypitaya.etcd.url']
54
+ @etcd_lease_seconds = @setup['rubypitaya.etcd.leaseSeconds'].to_i
53
55
  @allow_reconnect = false
54
56
  @etcd_connector = EtcdConnector.new(@service_uuid, @desktop_name,
55
57
  @server_name, @etcd_prefix,
@@ -57,15 +59,15 @@ module RubyPitaya
57
59
  @etcd_lease_seconds)
58
60
  @etcd_connector.connect
59
61
 
60
- @nats_address = ENV['NATS_URL']
62
+ @nats_address = @setup['rubypitaya.nats.url']
61
63
  @nats_connector = NatsConnector.new(@nats_address, @service_uuid,
62
64
  @server_name)
63
65
 
64
- @redis_address = ENV['REDIS_URL']
66
+ @redis_address = @setup['rubypitaya.redis.url']
65
67
  @redis_connector = RedisConnector.new(@redis_address)
66
68
  @redis_connector.connect
67
69
 
68
- @database_config = DatabaseConfig.new(@environment_name, Path::DATABASE_CONFIG_PATH)
70
+ @database_config = DatabaseConfig.new
69
71
  @database_connector = DatabaseConnector.new(@database_config)
70
72
  @database_connector.connect
71
73
 
@@ -73,8 +75,6 @@ module RubyPitaya
73
75
  @postman = Postman.new(@nats_connector)
74
76
  @config = Config.new
75
77
  @config.auto_reload if @is_development_environment
76
- @setup = Setup.new
77
- @setup.auto_reload if @is_development_environment
78
78
 
79
79
  @bll = InstanceHolder.new
80
80
 
@@ -101,6 +101,8 @@ module RubyPitaya
101
101
  HttpRoutes.set :config, @config
102
102
  HttpRoutes.set :views, [Path::HTTP_VIEWS_PATH] + Path::Plugins::HTTP_VIEWS_PATHS
103
103
 
104
+ HttpRoutes.auto_reload if @is_development_environment
105
+
104
106
  Thread.new do
105
107
  HttpRoutes.bind = '0.0.0.0'
106
108
  HttpRoutes.port = '4567'
@@ -152,15 +154,16 @@ module RubyPitaya
152
154
  session_id = request[:session][:id]
153
155
  session_uid = request[:session].fetch(:uid, '')
154
156
  session_data = request[:session][:data]
155
- session_data = JSON.parse(session_data) if session_data.class == String
157
+ session_data = JSON.parse(session_data, symbolize_names: true) if session_data.class == String
156
158
  frontend_id = request[:frontendID]
157
159
  metadata = request[:metadata]
158
- metadata = JSON.parse(metadata) if metadata.class == String
160
+ metadata = JSON.parse(metadata, symbolize_names: true) if metadata.class == String
159
161
 
160
162
  @session.update(session_id, session_uid, session_data, metadata,
161
163
  frontend_id)
162
164
 
163
- handler_name, action_name = message_route.split('.')[1..-1]
165
+ # TODO: Validate if handler and action names are not nil
166
+ handler_name, action_name = message_route.scan(/\A\w+\.(\w+)\.(\w+)\z/)[0]
164
167
 
165
168
  @log.info "request -> route: #{message_route}"
166
169
  @log.info " -> data: #{message_data}"
@@ -4,8 +4,6 @@ module RubyPitaya
4
4
  APP_TEMPLATE_FOLDER_PATH = File.join(__dir__, '../app-template/')
5
5
  MIGRATION_TEMPLATE_PATH = File.join(__dir__, 'templates/template_migration.rb.erb')
6
6
 
7
- DATABASE_CONFIG_PATH = File.join(Dir.pwd, 'config/database.yml')
8
-
9
7
  APP_FOLDER_PATH = File.join(Dir.pwd, 'app/')
10
8
  HANDLERS_FOLDER_PATH = File.join(Dir.pwd, 'app/handlers/')
11
9
  APP_CONFIG_FOLDER_PATH = File.join(Dir.pwd, 'app/config/')
@@ -1,9 +1,12 @@
1
+ require 'rubypitaya/core/path'
2
+
1
3
  module RubyPitaya
2
4
 
3
5
  class Setup
4
6
 
5
7
  def initialize()
6
8
  @config = {}
9
+ @empty_hash = {}
7
10
  configs_folder_paths = Path::Plugins::APP_SETUP_FOLDER_PATHS + [Path::APP_SETUP_FOLDER_PATH]
8
11
 
9
12
  configs_folder_paths.each do |configs_folder_path|
@@ -24,6 +27,13 @@ module RubyPitaya
24
27
  @config.dig(*split_key)
25
28
  end
26
29
 
30
+ def fetch(*args)
31
+ result = self[args[0]]
32
+ return result unless result.nil?
33
+
34
+ @empty_hash.fetch(*args)
35
+ end
36
+
27
37
  def auto_reload
28
38
  require 'listen'
29
39
 
@@ -15,7 +15,7 @@ module RubyPitaya
15
15
  end
16
16
 
17
17
  def config_mock=(value)
18
- @config_mock = value
18
+ @config_mock = value.deep_symbolize_keys.stringify_keys
19
19
  end
20
20
 
21
21
  def config_core_override=(value)
@@ -24,7 +24,7 @@ module RubyPitaya
24
24
  def add(key, value)
25
25
  keys = key.split('.')
26
26
  add_hash = undig(*keys, value)
27
- @config_mock = merge_recursively(@config_mock, add_hash)
27
+ @config_mock = merge_recursively(@config_mock, add_hash).deep_symbolize_keys.stringify_keys
28
28
  end
29
29
 
30
30
  private
@@ -1,3 +1,4 @@
1
+ require 'rubypitaya/core/setup'
1
2
  require 'rubypitaya/core/handler_router'
2
3
  require 'rubypitaya/core/redis_connector'
3
4
  require 'rubypitaya/core/spec-helpers/setup_spec_helper'
@@ -96,7 +97,8 @@ module RubyPitaya
96
97
  @@redis_connector ||= nil
97
98
 
98
99
  if @@redis_connector.nil?
99
- redis_address = ENV['REDIS_URL']
100
+ @@core_setup ||= Setup.new
101
+ redis_address = @@core_setup['rubypitaya.redis.url']
100
102
  @@redis_connector = RedisConnector.new(redis_address)
101
103
  @@redis_connector.connect
102
104
  end
@@ -1,3 +1,3 @@
1
1
  module RubyPitaya
2
- VERSION = '2.18.0'
2
+ VERSION = '2.21.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubypitaya
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.18.0
4
+ version: 2.21.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luciano Prestes Cavalcanti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-07 00:00:00.000000000 Z
11
+ date: 2021-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.11.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: mongo
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.15.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 2.15.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: redis
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -150,20 +164,6 @@ dependencies:
150
164
  - - '='
151
165
  - !ruby/object:Gem::Version
152
166
  version: 6.1.3
153
- - !ruby/object:Gem::Dependency
154
- name: eventmachine
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - '='
158
- - !ruby/object:Gem::Version
159
- version: 1.2.7
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - '='
165
- - !ruby/object:Gem::Version
166
- version: 1.2.7
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: pry
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -260,20 +260,39 @@ files:
260
260
  - "./lib/rubypitaya/app-template/app/http/views/hello_world.erb"
261
261
  - "./lib/rubypitaya/app-template/app/models/player.rb"
262
262
  - "./lib/rubypitaya/app-template/app/models/user.rb"
263
- - "./lib/rubypitaya/app-template/app/setup/initial_player.yml"
263
+ - "./lib/rubypitaya/app-template/app/setup/rubypitaya.yml"
264
264
  - "./lib/rubypitaya/app-template/bin/console"
265
- - "./lib/rubypitaya/app-template/config/database.yml"
266
265
  - "./lib/rubypitaya/app-template/config/routes.rb"
267
266
  - "./lib/rubypitaya/app-template/db/migration/1606736477_create_player_migration.rb"
268
267
  - "./lib/rubypitaya/app-template/docker-compose.yml"
269
268
  - "./lib/rubypitaya/app-template/docker/dev/Dockerfile"
270
269
  - "./lib/rubypitaya/app-template/docker/entrypoint.sh"
271
270
  - "./lib/rubypitaya/app-template/docker/prod/Dockerfile"
271
+ - "./lib/rubypitaya/app-template/docker/wait_for.sh"
272
272
  - "./lib/rubypitaya/app-template/features/hello_world.feature"
273
273
  - "./lib/rubypitaya/app-template/features/player.feature"
274
274
  - "./lib/rubypitaya/app-template/features/step_definitions/application_steps.rb"
275
275
  - "./lib/rubypitaya/app-template/features/step_definitions/rubypitaya_steps.rb"
276
276
  - "./lib/rubypitaya/app-template/features/support/env.rb"
277
+ - "./lib/rubypitaya/app-template/helm/Chart.yaml"
278
+ - "./lib/rubypitaya/app-template/helm/templates/config-maps/nginx-config.yaml"
279
+ - "./lib/rubypitaya/app-template/helm/templates/deployments/connector.yaml"
280
+ - "./lib/rubypitaya/app-template/helm/templates/deployments/gameserver-nginx.yaml"
281
+ - "./lib/rubypitaya/app-template/helm/templates/deployments/rubypitaya.yaml"
282
+ - "./lib/rubypitaya/app-template/helm/templates/role-bindings/rubypitaya.yaml"
283
+ - "./lib/rubypitaya/app-template/helm/templates/roles/rubypitaya.yaml"
284
+ - "./lib/rubypitaya/app-template/helm/templates/service-accounts/rubypitaya.yaml"
285
+ - "./lib/rubypitaya/app-template/helm/templates/services/connector.yaml"
286
+ - "./lib/rubypitaya/app-template/helm/templates/services/etcd.yaml"
287
+ - "./lib/rubypitaya/app-template/helm/templates/services/gameserver-nginx.yaml"
288
+ - "./lib/rubypitaya/app-template/helm/templates/services/gameserver.yaml"
289
+ - "./lib/rubypitaya/app-template/helm/templates/services/nats.yaml"
290
+ - "./lib/rubypitaya/app-template/helm/templates/services/redis.yaml"
291
+ - "./lib/rubypitaya/app-template/helm/templates/services/rubypitaya.yaml"
292
+ - "./lib/rubypitaya/app-template/helm/templates/statefulsets/etcd.yaml"
293
+ - "./lib/rubypitaya/app-template/helm/templates/statefulsets/nats.yaml"
294
+ - "./lib/rubypitaya/app-template/helm/templates/statefulsets/redis.yaml"
295
+ - "./lib/rubypitaya/app-template/helm/values.yaml"
277
296
  - "./lib/rubypitaya/app-template/kubernetes/README.md"
278
297
  - "./lib/rubypitaya/app-template/kubernetes/deployment-connector.yaml"
279
298
  - "./lib/rubypitaya/app-template/kubernetes/deployment-rubypitaya.yaml"