roro 0.3.13 → 0.3.21

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.
Files changed (214) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +55 -11
  3. data/.gitignore +3 -2
  4. data/Guardfile +8 -10
  5. data/README.md +2 -1
  6. data/lib/roro.rb +3 -1
  7. data/lib/roro/cli.rb +16 -74
  8. data/lib/roro/cli/generate/exposed.rb +14 -0
  9. data/lib/roro/cli/generate/{generate_keys.rb → keys.rb} +24 -2
  10. data/lib/roro/cli/generate/obfuscated.rb +17 -0
  11. data/lib/roro/cli/generate/story.rb +18 -0
  12. data/lib/roro/cli/greenfield/rails.rb +14 -0
  13. data/lib/roro/cli/rollon.rb +126 -63
  14. data/lib/roro/cli/rollon/rails/base/base.rb +4 -0
  15. data/lib/roro/cli/{base → rollon/rails/base}/insert_gems.rb +2 -10
  16. data/lib/roro/cli/{base → rollon/rails/base}/insertions.rb +8 -0
  17. data/lib/roro/cli/rollon/rails/database.rb +26 -0
  18. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_mysql.rb +4 -4
  19. data/lib/roro/cli/rollon/{stories/rails → rails}/database/with_postgresql.rb +5 -6
  20. data/lib/roro/cli/rollon/ruby_gem.rb +1 -0
  21. data/lib/roro/cli/rollon/{stories/ruby_gem → ruby_gem}/with_ci_cd.rb +8 -8
  22. data/lib/roro/cli/rollon/stories.rb +2 -2
  23. data/lib/roro/configurator.rb +15 -0
  24. data/lib/roro/configurator/eligibility.rb +137 -0
  25. data/lib/roro/configurator/okonomi.rb +28 -0
  26. data/lib/roro/configurator/omakase.rb +170 -0
  27. data/lib/roro/crypto.rb +73 -0
  28. data/lib/roro/stories/greenfield.yml +1 -0
  29. data/lib/roro/stories/greenfield/rails.yml +9 -0
  30. data/lib/roro/stories/rollon.yml +42 -0
  31. data/lib/roro/stories/rollon/rails.yml +76 -0
  32. data/lib/roro/stories/rollon/rails/ci_cd.yml +1 -0
  33. data/lib/roro/stories/rollon/rails/ci_cd/circleci.yml +2 -0
  34. data/lib/roro/stories/rollon/rails/database.yml +9 -0
  35. data/lib/roro/stories/rollon/rails/database/mysql.yml +17 -0
  36. data/lib/roro/stories/rollon/rails/database/postgresql.yml +15 -0
  37. data/lib/roro/stories/rollon/rails/kubernetes.yml +1 -0
  38. data/lib/roro/stories/rollon/rails/kubernetes/postgresql.yml +10 -0
  39. data/lib/roro/stories/rollon/rails/kubernetes/postgresql/default.yml +1 -0
  40. data/lib/roro/stories/rollon/rails/kubernetes/postgresql/edge.yml +1 -0
  41. data/lib/roro/stories/rollon/ruby_gem.yml +5 -0
  42. data/lib/roro/templates/base/.circleci/_aliases.yml +8 -0
  43. data/lib/roro/templates/base/.circleci/_commands.yml +31 -0
  44. data/lib/roro/templates/base/.circleci/_defaults.yml +5 -0
  45. data/lib/roro/templates/base/.circleci/_executors.yml +11 -0
  46. data/lib/roro/templates/base/.circleci/_major_only.yml +4 -0
  47. data/lib/roro/templates/base/.circleci/_version.yml +1 -0
  48. data/lib/roro/templates/base/.circleci/_workflow.yml +2 -0
  49. data/lib/roro/templates/base/.circleci/config.job-example.yml +33 -0
  50. data/lib/roro/templates/base/.circleci/jobs/_build.yml +4 -0
  51. data/lib/roro/templates/base/.circleci/jobs/_release.yml +12 -0
  52. data/lib/roro/templates/base/.circleci/workflows/_build_release.yml +10 -0
  53. data/lib/roro/{cli/templates → templates}/base/.dockerignore +0 -0
  54. data/lib/roro/templates/base/dotenv +1 -0
  55. data/lib/roro/{cli/rollon/stories/rails → templates/base/jumpstart}/.keep +0 -0
  56. data/lib/roro/{cli/templates → templates/base}/jumpstart/Dockerfile.tt +0 -0
  57. data/lib/roro/{cli/templates → templates/base}/jumpstart/docker-compose.yml +0 -0
  58. data/lib/roro/{cli/templates → templates/base}/jumpstart/docker-entrypoint.sh +0 -0
  59. data/lib/roro/{cli/templates → templates/base}/livereload/hosts.example +0 -0
  60. data/lib/roro/{cli/templates/base → templates/base/roro}/.keep +0 -0
  61. data/lib/roro/{cli/templates/jumpstart → templates/base/roro/roro}/.keep +0 -0
  62. data/lib/roro/{cli/templates/roro → templates/base/roro/roro/containers}/.keep +0 -0
  63. data/lib/roro/{cli/templates/roro/roro → templates/base/roro/roro/containers/app}/.keep +0 -0
  64. data/lib/roro/{cli/templates/roro/roro/containers → templates/base/roro/roro/containers/frontend}/.keep +0 -0
  65. data/lib/roro/{cli/templates → templates/base}/roro/roro/docker-entrypoint.sh.tt +0 -0
  66. data/lib/roro/{cli/templates/roro/roro/containers/app → templates/rails/.circleci}/.keep +0 -0
  67. data/lib/roro/templates/rails/.circleci/config.yml.tt +11 -0
  68. data/lib/roro/templates/rails/.circleci/jobs/_build.yml +14 -0
  69. data/lib/roro/templates/rails/.circleci/jobs/_push.yml +11 -0
  70. data/lib/roro/templates/rails/.circleci/jobs/_test.yml +12 -0
  71. data/lib/roro/{cli/templates/ruby_gem → templates/rails}/.circleci/setup-gem-credentials.sh +0 -0
  72. data/lib/roro/templates/rails/.circleci/workflows/_build_test_push.yml +12 -0
  73. data/lib/roro/{cli/templates/roro/roro/containers/frontend → templates/rails}/.keep +0 -0
  74. data/lib/roro/templates/rails/Dockerfile.greenfield.tt +51 -0
  75. data/lib/roro/{cli/templates/base → templates/rails}/config/database.mysql.yml +0 -0
  76. data/lib/roro/{cli/templates/base → templates/rails}/config/database.pg.yml +2 -3
  77. data/lib/roro/templates/rails/database/with_mysql/_service.yml +10 -0
  78. data/lib/roro/{cli/templates/ruby_gem/.circleci → templates/rails/database/with_postgresql}/.keep +0 -0
  79. data/lib/roro/templates/rails/database/with_postgresql/_service.yml +7 -0
  80. data/lib/roro/{cli/templates/roro → templates/rails}/docker-compose.yml.tt +9 -10
  81. data/lib/roro/{cli/templates/ruby_gem/roro/containers → templates/rails/dotenv}/.keep +0 -0
  82. data/lib/roro/templates/rails/dotenv/database.mysql.env.tt +6 -0
  83. data/lib/roro/templates/rails/dotenv/database.pg.env.tt +4 -0
  84. data/lib/roro/templates/rails/dotenv/web.env.tt +2 -0
  85. data/lib/roro/templates/rails/kube.rake.tt +114 -0
  86. data/lib/roro/{cli/templates/ruby_gem/roro/keys → templates/rails/roro}/.keep +0 -0
  87. data/lib/roro/{cli/templates/stories → templates/rails/roro/containers}/.keep +0 -0
  88. data/lib/roro/{cli/templates/stories/rails/database/with_postgresql → templates/rails/roro/containers/app}/.keep +0 -0
  89. data/lib/roro/templates/rails/roro/containers/app/Dockerfile.tt +34 -0
  90. data/lib/roro/{cli/templates/stories/with_postgresql → templates/rails/roro/containers/frontend}/.keep +0 -0
  91. data/lib/roro/templates/rails/roro/docker-entrypoint.sh +8 -0
  92. data/lib/roro/{cli/rollon/stories/database.rb → templates/rails/roro/kube/.keep} +0 -0
  93. data/lib/roro/templates/rails/roro/kube/certificate.yml.tt +0 -0
  94. data/lib/roro/templates/rails/roro/kube/cluster-issuer.yml.tt +0 -0
  95. data/lib/roro/templates/rails/roro/kube/deployment.yml.tt +50 -0
  96. data/lib/roro/templates/rails/roro/kube/deployments/postgres_deploy.yaml +47 -0
  97. data/lib/roro/templates/rails/roro/kube/deployments/rails_deploy.yaml +62 -0
  98. data/lib/roro/templates/rails/roro/kube/deployments/redis_deploy.yaml +23 -0
  99. data/lib/roro/templates/rails/roro/kube/deployments/sidekiq_deploy.yaml +56 -0
  100. data/lib/roro/templates/rails/roro/kube/ingress.yml.tt +0 -0
  101. data/lib/roro/templates/rails/roro/kube/ingresses/ingress.yaml +13 -0
  102. data/lib/roro/templates/rails/roro/kube/job-migrate.yml.tt +0 -0
  103. data/lib/roro/templates/rails/roro/kube/jobs/setup.yaml +42 -0
  104. data/lib/roro/templates/rails/roro/kube/secret-digital-ocean.yml.tt +4 -0
  105. data/lib/roro/templates/rails/roro/kube/service.yml.tt +10 -0
  106. data/lib/roro/templates/rails/roro/kube/services/postgres_svc.yaml +13 -0
  107. data/lib/roro/templates/rails/roro/kube/services/rails_svc.yaml +13 -0
  108. data/lib/roro/templates/rails/roro/kube/services/redis_svc.yaml +13 -0
  109. data/lib/roro/templates/rails/roro/kube/volumes/postgres_volumes.yaml +25 -0
  110. data/lib/roro/templates/ruby_gem/.circleci/.keep +0 -0
  111. data/lib/roro/templates/ruby_gem/.circleci/config.yml.tt +16 -0
  112. data/lib/roro/templates/ruby_gem/.circleci/jobs/_test.yml +4 -0
  113. data/lib/roro/templates/ruby_gem/.circleci/setup-gem-credentials.sh +3 -0
  114. data/lib/roro/{cli/templates → templates}/ruby_gem/docker-compose.yml +0 -0
  115. data/lib/roro/templates/ruby_gem/roro/containers/.keep +0 -0
  116. data/lib/roro/{cli/templates → templates}/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +1 -1
  117. data/lib/roro/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +1 -0
  118. data/lib/roro/templates/ruby_gem/roro/keys/.keep +0 -0
  119. data/lib/roro/version.rb +1 -1
  120. data/roro.gemspec +11 -21
  121. data/roro/containers/app/Dockerfile +51 -0
  122. metadata +165 -173
  123. data/lib/roro/cli/base/base.rb +0 -8
  124. data/lib/roro/cli/base/base_files.rb +0 -24
  125. data/lib/roro/cli/base/check_dependencies.rb +0 -98
  126. data/lib/roro/cli/base/continuous_integration.rb +0 -13
  127. data/lib/roro/cli/base/utilities.rb +0 -39
  128. data/lib/roro/cli/cli.rb +0 -99
  129. data/lib/roro/cli/configuration.rb +0 -69
  130. data/lib/roro/cli/expose.rb +0 -14
  131. data/lib/roro/cli/generate/config.rb +0 -13
  132. data/lib/roro/cli/generate/config/rails.rb +0 -17
  133. data/lib/roro/cli/greenfield.rb +0 -31
  134. data/lib/roro/cli/obfuscate.rb +0 -19
  135. data/lib/roro/cli/rollon/stories/rails.rb +0 -1
  136. data/lib/roro/cli/rollon/stories/rails/database.rb +0 -33
  137. data/lib/roro/cli/rollon/stories/ruby_gem.rb +0 -77
  138. data/lib/roro/cli/rollon/stories/stories.rb +0 -3
  139. data/lib/roro/cli/roro_configurator.yml +0 -157
  140. data/lib/roro/cli/ruby_gem.rb +0 -67
  141. data/lib/roro/cli/templates/base/.roro_config.yml +0 -15
  142. data/lib/roro/cli/templates/base/Dockerfile.tt +0 -82
  143. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +0 -43
  144. data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +0 -40
  145. data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +0 -1
  146. data/lib/roro/cli/templates/stories/rails/database/with_mysql/_service.yml +0 -10
  147. data/lib/roro/cli/templates/stories/rails/database/with_postgresql/_service.yml +0 -7
  148. data/lib/roro/cli/templates/stories/ruby_gem/with_ci_cd/_build.yml +0 -11
  149. data/lib/roro/cli/templates/stories/with_mysql/_service.yml +0 -10
  150. data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +0 -7
  151. data/lib/tasks/deploy.rake +0 -126
  152. data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
  153. data/vendor/cache/actionview-6.0.3.2.gem +0 -0
  154. data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
  155. data/vendor/cache/addressable-2.7.0.gem +0 -0
  156. data/vendor/cache/builder-3.2.4.gem +0 -0
  157. data/vendor/cache/byebug-11.1.3.gem +0 -0
  158. data/vendor/cache/coderay-1.1.3.gem +0 -0
  159. data/vendor/cache/concurrent-ruby-1.1.7.gem +0 -0
  160. data/vendor/cache/crass-1.0.6.gem +0 -0
  161. data/vendor/cache/em-websocket-0.5.1.gem +0 -0
  162. data/vendor/cache/erubi-1.9.0.gem +0 -0
  163. data/vendor/cache/eventmachine-1.2.7.gem +0 -0
  164. data/vendor/cache/ffi-1.13.1.gem +0 -0
  165. data/vendor/cache/formatador-0.2.5.gem +0 -0
  166. data/vendor/cache/gem-release-2.1.1.gem +0 -0
  167. data/vendor/cache/given_core-3.8.0.gem +0 -0
  168. data/vendor/cache/guard-2.16.2.gem +0 -0
  169. data/vendor/cache/guard-compat-1.2.1.gem +0 -0
  170. data/vendor/cache/guard-livereload-2.5.2.gem +0 -0
  171. data/vendor/cache/guard-minitest-2.4.6.gem +0 -0
  172. data/vendor/cache/handsome_fencer-crypto-0.1.6.gem +0 -0
  173. data/vendor/cache/handsome_fencer-test-0.1.1.gem +0 -0
  174. data/vendor/cache/http_parser.rb-0.6.0.gem +0 -0
  175. data/vendor/cache/i18n-1.8.5.gem +0 -0
  176. data/vendor/cache/launchy-2.5.0.gem +0 -0
  177. data/vendor/cache/listen-3.2.1.gem +0 -0
  178. data/vendor/cache/loofah-2.6.0.gem +0 -0
  179. data/vendor/cache/lumberjack-1.2.7.gem +0 -0
  180. data/vendor/cache/method_source-1.0.0.gem +0 -0
  181. data/vendor/cache/mini_portile2-2.4.0.gem +0 -0
  182. data/vendor/cache/minitest-5.14.1.gem +0 -0
  183. data/vendor/cache/minitest-given-3.8.0.gem +0 -0
  184. data/vendor/cache/minitest-matchers_vaccine-1.0.4.gem +0 -0
  185. data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
  186. data/vendor/cache/mocha-1.11.2.gem +0 -0
  187. data/vendor/cache/multi_json-1.15.0.gem +0 -0
  188. data/vendor/cache/nenv-0.3.0.gem +0 -0
  189. data/vendor/cache/net-scp-3.0.0.gem +0 -0
  190. data/vendor/cache/net-ssh-6.1.0.gem +0 -0
  191. data/vendor/cache/nokogiri-1.10.10.gem +0 -0
  192. data/vendor/cache/notiffany-0.1.3.gem +0 -0
  193. data/vendor/cache/os-1.0.0.gem +0 -0
  194. data/vendor/cache/pry-0.13.1.gem +0 -0
  195. data/vendor/cache/public_suffix-4.0.5.gem +0 -0
  196. data/vendor/cache/rack-2.2.3.gem +0 -0
  197. data/vendor/cache/rack-livereload-0.3.17.gem +0 -0
  198. data/vendor/cache/rack-test-1.1.0.gem +0 -0
  199. data/vendor/cache/rails-dom-testing-2.0.3.gem +0 -0
  200. data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
  201. data/vendor/cache/railties-6.0.3.2.gem +0 -0
  202. data/vendor/cache/rake-13.0.1.gem +0 -0
  203. data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
  204. data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
  205. data/vendor/cache/shellany-0.0.1.gem +0 -0
  206. data/vendor/cache/shoulda-4.0.0.gem +0 -0
  207. data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
  208. data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
  209. data/vendor/cache/sorcerer-2.0.1.gem +0 -0
  210. data/vendor/cache/sshkit-1.18.2.gem +0 -0
  211. data/vendor/cache/thor-1.0.1.gem +0 -0
  212. data/vendor/cache/thread_safe-0.3.6.gem +0 -0
  213. data/vendor/cache/tzinfo-1.2.7.gem +0 -0
  214. data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
@@ -0,0 +1,50 @@
1
+ # ./kube/deployment.yml
2
+
3
+ apiVersion: apps/v1
4
+ kind: Deployment
5
+ metadata:
6
+ name: <%= config[:main_app_name] %>-app-deployment
7
+ labels:
8
+ app: <%= config[:main_app_name] %>-app
9
+ tier: app
10
+ spec:
11
+ replicas: 2
12
+ minReadySeconds: 5
13
+ strategy:
14
+ type: RollingUpdate
15
+ rollingUpdate:
16
+ maxSurge: 1
17
+ maxUnavailable: 1
18
+ selector:
19
+ matchLabels:
20
+ app: <%= config[:main_app_name] %>-app
21
+ tier: app
22
+ template:
23
+ metadata:
24
+ labels:
25
+ app: rubytags
26
+ tier: app
27
+ spec:
28
+ imagePullSecrets:
29
+ - name: docker-registry
30
+ containers:
31
+ - name: <%= config[:main_app_name] %>-app
32
+ image: <%= config[:docker_org] %>/<%= config[:main_app_name] %>-app
33
+ imagePullPolicy: Always
34
+ ports:
35
+ - containerPort: 3000
36
+ env:
37
+ - name: RAILS_LOG_TO_STDOUT
38
+ value: 'true'
39
+ - name: SECRET_KEY_BASE
40
+ value: '$SECRET_KEY_BASE'
41
+ - name: RAILS_ENV
42
+ value: '$RAILS_ENV'
43
+ - name: DATABASE_USERNAME
44
+ value: '$DATABASE_USERNAME'
45
+ - name: DATABASE_PASSWORD
46
+ value: '$DATABASE_PASSWORD'
47
+ - name: DATABASE_HOST
48
+ value: '$DATABASE_HOST'
49
+ - name: DATABASE_PORT
50
+ value: '$DATABASE_PORT'
@@ -0,0 +1,47 @@
1
+ ---
2
+ apiVersion: apps/v1beta2
3
+ kind: Deployment
4
+ metadata:
5
+ name: postgres
6
+ labels:
7
+ app: rails-kube-app
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app: rails-kube-app
13
+ tier: database
14
+ template:
15
+ metadata:
16
+ name: postgres
17
+ labels:
18
+ app: rails-kube-app
19
+ tier: database
20
+ spec:
21
+ volumes:
22
+ - name: postgres-pv
23
+ persistentVolumeClaim:
24
+ claimName: postgres-pvc
25
+ containers:
26
+ - name: postgres
27
+ image: postgres:9.6-alpine
28
+ env:
29
+ - name: POSTGRES_USER
30
+ valueFrom:
31
+ secretKeyRef:
32
+ name: "db-user"
33
+ key: "username"
34
+ - name: POSTGRES_PASSWORD
35
+ valueFrom:
36
+ secretKeyRef:
37
+ name: "db-user-pass"
38
+ key: "password"
39
+ - name: POSTGRES_DB
40
+ value: "rails-kube-demo_production"
41
+ - name: PGDATA
42
+ value: "/var/lib/postgresql/data/pgdata"
43
+ ports:
44
+ - containerPort: 5432
45
+ volumeMounts:
46
+ - mountPath: "/var/lib/postgresql/data"
47
+ name: postgres-pv
@@ -0,0 +1,62 @@
1
+ ---
2
+ apiVersion: apps/v1beta2
3
+ kind: Deployment
4
+ metadata:
5
+ name: rails-deployment
6
+ spec:
7
+ replicas: 1
8
+ minReadySeconds: 5
9
+ strategy:
10
+ type: RollingUpdate
11
+ rollingUpdate:
12
+ maxSurge: 1
13
+ maxUnavailable: 1
14
+ selector:
15
+ matchLabels:
16
+ app: rails-kube-app
17
+ tier: app
18
+ template:
19
+ metadata:
20
+ name: rails
21
+ labels:
22
+ app: rails-kube-app
23
+ tier: app
24
+ spec:
25
+ containers:
26
+ - name: rails
27
+ image: tzumby/rails-app-alpine:latest
28
+ args: ["rake assets:precompile && rails s -p 3000 -b 0.0.0.0"]
29
+ env:
30
+ - name: RAILS_LOG_TO_STDOUT
31
+ value: "true"
32
+ - name: RAILS_SERVE_STATIC_FILES
33
+ value: "true"
34
+ - name: DATABASE_NAME
35
+ value: "rails-kube-demo_production"
36
+ - name: DATABASE_PORT
37
+ value: "5432"
38
+ - name: DATABASE_URL
39
+ value: "postgres"
40
+ - name: DATABASE_USER
41
+ valueFrom:
42
+ secretKeyRef:
43
+ name: "db-user"
44
+ key: "username"
45
+ - name: DATABASE_PASSWORD
46
+ valueFrom:
47
+ secretKeyRef:
48
+ name: "db-user-pass"
49
+ key: "password"
50
+ - name: REDIS_URL
51
+ value: "redis"
52
+ - name: REDIS_PORT
53
+ value: "6379"
54
+ - name: RAILS_ENV
55
+ value: "production"
56
+ - name: SECRET_KEY_BASE
57
+ valueFrom:
58
+ secretKeyRef:
59
+ name: "secret-key-base"
60
+ key: "secret-key-base"
61
+ ports:
62
+ - containerPort: 3000
@@ -0,0 +1,23 @@
1
+ ---
2
+ apiVersion: apps/v1beta2
3
+ kind: Deployment
4
+ metadata:
5
+ name: redis-deployment
6
+ spec:
7
+ replicas: 1
8
+ selector:
9
+ matchLabels:
10
+ app: rails-kube-app
11
+ tier: cache
12
+ template:
13
+ metadata:
14
+ name: redis
15
+ labels:
16
+ app: rails-kube-app
17
+ tier: cache
18
+ spec:
19
+ containers:
20
+ - name: redis
21
+ image: redis:3.2-alpine
22
+ ports:
23
+ - containerPort: 6379
@@ -0,0 +1,56 @@
1
+ ---
2
+ apiVersion: apps/v1beta2
3
+ kind: Deployment
4
+ metadata:
5
+ name: sidekiq-deployment
6
+ spec:
7
+ replicas: 1
8
+ minReadySeconds: 5
9
+ strategy:
10
+ type: RollingUpdate
11
+ rollingUpdate:
12
+ maxSurge: 1
13
+ maxUnavailable: 1
14
+ selector:
15
+ matchLabels:
16
+ app: rails-kube-app
17
+ tier: queue
18
+ template:
19
+ metadata:
20
+ name: sidekiq
21
+ labels:
22
+ app: rails-kube-app
23
+ tier: queue
24
+ spec:
25
+ containers:
26
+ - name: sidekiq
27
+ image: tzumby/rails-app-alpine:latest
28
+ args: ["sidekiq -C config/sidekiq.yml"]
29
+ env:
30
+ - name: DATABASE_NAME
31
+ value: "rails-kube-demo_production"
32
+ - name: DATABASE_PORT
33
+ value: "5432"
34
+ - name: DATABASE_URL
35
+ value: "postgres"
36
+ - name: DATABASE_USER
37
+ valueFrom:
38
+ secretKeyRef:
39
+ name: "db-user"
40
+ key: "username"
41
+ - name: DATABASE_PASSWORD
42
+ valueFrom:
43
+ secretKeyRef:
44
+ name: "db-user-pass"
45
+ key: "password"
46
+ - name: REDIS_URL
47
+ value: "redis"
48
+ - name: REDIS_PORT
49
+ value: "6379"
50
+ - name: RAILS_ENV
51
+ value: "production"
52
+ - name: SECRET_KEY_BASE
53
+ valueFrom:
54
+ secretKeyRef:
55
+ name: "secret-key-base"
56
+ key: "secret-key-base"
File without changes
@@ -0,0 +1,13 @@
1
+ apiVersion: extensions/v1beta1
2
+ kind: Ingress
3
+ metadata:
4
+ name: rails-demo-ing
5
+ spec:
6
+ rules:
7
+ - host: rails-prod.local
8
+ http:
9
+ paths:
10
+ - backend:
11
+ serviceName: rails
12
+ servicePort: 3000
13
+ path: /
@@ -0,0 +1,42 @@
1
+ apiVersion: batch/v1
2
+ kind: Job
3
+ metadata:
4
+ name: setup
5
+ spec:
6
+ template:
7
+ metadata:
8
+ name: setup
9
+ spec:
10
+ containers:
11
+ - name: setup
12
+ image: tzumby/rails-app-alpine:latest
13
+ args: ["rake db:create && rake db:migrate"]
14
+ env:
15
+ - name: DATABASE_NAME
16
+ value: "rails-kube-demo_production"
17
+ - name: DATABASE_PORT
18
+ value: "5432"
19
+ - name: DATABASE_URL
20
+ value: "postgres"
21
+ - name: DATABASE_USER
22
+ valueFrom:
23
+ secretKeyRef:
24
+ name: "db-user"
25
+ key: "username"
26
+ - name: DATABASE_PASSWORD
27
+ valueFrom:
28
+ secretKeyRef:
29
+ name: "db-user-pass"
30
+ key: "password"
31
+ - name: REDIS_URL
32
+ value: "redis"
33
+ - name: REDIS_PORT
34
+ value: "6379"
35
+ - name: RAILS_ENV
36
+ value: "production"
37
+ - name: SECRET_KEY_BASE
38
+ valueFrom:
39
+ secretKeyRef:
40
+ name: "secret-key-base"
41
+ key: "secret-key-base"
42
+ restartPolicy: Never
@@ -0,0 +1,4 @@
1
+ DOCKER_REGISTRY_SERVER
2
+ DOCKER_USERNAME
3
+ DOCKER_PASSWORD
4
+ DOCKER_EMAIL
@@ -0,0 +1,10 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: <%= config[:main_app_name] %>-service
5
+ spec:
6
+ ports:
7
+ - port: 3000
8
+ selector:
9
+ app: <%= config[:main_app_name] %>-app
10
+ tier: app
@@ -0,0 +1,13 @@
1
+ ---
2
+ apiVersion: v1
3
+ kind: Service
4
+ metadata:
5
+ name: postgres
6
+ labels:
7
+ app: rails-kube-app
8
+ spec:
9
+ ports:
10
+ - port: 5432
11
+ selector:
12
+ app: rails-kube-app
13
+ tier: database
@@ -0,0 +1,13 @@
1
+ ---
2
+ apiVersion: v1
3
+ kind: Service
4
+ metadata:
5
+ name: rails
6
+ labels:
7
+ app: rails-kube-app
8
+ spec:
9
+ ports:
10
+ - port: 3000
11
+ selector:
12
+ app: rails-kube-app
13
+ tier: app
@@ -0,0 +1,13 @@
1
+ ---
2
+ apiVersion: v1
3
+ kind: Service
4
+ metadata:
5
+ name: redis
6
+ labels:
7
+ app: rails-kube-app
8
+ spec:
9
+ ports:
10
+ - port: 6379
11
+ selector:
12
+ app: rails-kube-app
13
+ tier: cache
@@ -0,0 +1,25 @@
1
+ ---
2
+ kind: PersistentVolume
3
+ apiVersion: v1
4
+ metadata:
5
+ name: postgres-pv
6
+ labels:
7
+ type: local
8
+ spec:
9
+ capacity:
10
+ storage: 4Gi
11
+ accessModes:
12
+ - ReadWriteOnce
13
+ hostPath:
14
+ path: "/tmp/data"
15
+ ---
16
+ kind: PersistentVolumeClaim
17
+ apiVersion: v1
18
+ metadata:
19
+ name: postgres-pvc
20
+ spec:
21
+ accessModes:
22
+ - ReadWriteOnce
23
+ resources:
24
+ requests:
25
+ storage: 4Gi
File without changes
@@ -0,0 +1,16 @@
1
+ <%= yaml_from_template("base/.circleci/_version.yml") %>
2
+ <%= yaml_from_template("base/.circleci/_defaults.yml") %>
3
+
4
+ jobs:
5
+ <%= yaml_from_template("base/.circleci/jobs/_build.yml") %>
6
+
7
+ <%= yaml_from_template("ruby_gem/.circleci/jobs/_test.yml") %>
8
+
9
+
10
+ <%= yaml_from_template("base/.circleci/jobs/_release.yml") %>
11
+
12
+ <%= yaml_from_template("base/.circleci/_workflow.yml") %>
13
+
14
+ <%= yaml_from_template("base/.circleci/workflows/_build_release.yml") %>
15
+
16
+
@@ -0,0 +1,4 @@
1
+ test:
2
+ machine: true
3
+ steps:
4
+ - placeholder
@@ -0,0 +1,3 @@
1
+ mkdir ~/.gem
2
+ echo -e "---\r\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
3
+ chmod 0600 /home/circleci/.gem/credentials
File without changes
@@ -1,4 +1,4 @@
1
- ARG RUBY_VERSION=<%= config['ruby_version'] %>
1
+ ARG RUBY_VERSION=<%= config[:ruby_version] %>
2
2
  ARG RUBY_IMAGE=ruby:${RUBY_VERSION}-alpine
3
3
  FROM $RUBY_IMAGE
4
4