roro 0.3.17 → 0.3.18

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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +11 -10
  3. data/.gitignore +3 -2
  4. data/Guardfile +8 -10
  5. data/README.md +2 -1
  6. data/lib/roro.rb +1 -0
  7. data/lib/roro/cli.rb +13 -7
  8. data/lib/roro/cli/generate/story.rb +18 -0
  9. data/lib/roro/cli/greenfield/rails.rb +2 -24
  10. data/lib/roro/cli/rollon.rb +135 -8
  11. data/lib/roro/cli/rollon/rails/base/base.rb +4 -0
  12. data/lib/roro/cli/{base → rollon/rails/base}/insert_gems.rb +2 -10
  13. data/lib/roro/cli/{base → rollon/rails/base}/insertions.rb +8 -0
  14. data/lib/roro/cli/rollon/rails/database.rb +4 -8
  15. data/lib/roro/cli/rollon/rails/database/with_mysql.rb +2 -2
  16. data/lib/roro/cli/rollon/rails/database/with_postgresql.rb +3 -4
  17. data/lib/roro/cli/rollon/ruby_gem/with_ci_cd.rb +7 -7
  18. data/lib/roro/configurator.rb +15 -0
  19. data/lib/roro/configurator/eligibility.rb +137 -0
  20. data/lib/roro/configurator/okonomi.rb +28 -0
  21. data/lib/roro/configurator/omakase.rb +170 -0
  22. data/lib/roro/stories/greenfield.yml +1 -0
  23. data/lib/roro/stories/greenfield/rails.yml +9 -0
  24. data/lib/roro/stories/rollon.yml +42 -0
  25. data/lib/roro/stories/rollon/rails.yml +76 -0
  26. data/lib/roro/stories/rollon/rails/ci_cd.yml +1 -0
  27. data/lib/roro/stories/rollon/rails/ci_cd/circleci.yml +2 -0
  28. data/lib/roro/stories/rollon/rails/database.yml +9 -0
  29. data/lib/roro/stories/rollon/rails/database/mysql.yml +17 -0
  30. data/lib/roro/stories/rollon/rails/database/postgresql.yml +15 -0
  31. data/lib/roro/stories/rollon/rails/kubernetes.yml +1 -0
  32. data/lib/roro/stories/rollon/rails/kubernetes/postgresql.yml +10 -0
  33. data/lib/roro/stories/rollon/rails/kubernetes/postgresql/default.yml +1 -0
  34. data/lib/roro/stories/rollon/rails/kubernetes/postgresql/edge.yml +1 -0
  35. data/lib/roro/stories/rollon/ruby_gem.yml +5 -0
  36. data/lib/roro/{cli/templates/rails → templates/base}/.circleci/_aliases.yml +0 -0
  37. data/lib/roro/templates/base/.circleci/_commands.yml +31 -0
  38. data/lib/roro/templates/base/.circleci/_defaults.yml +5 -0
  39. data/lib/roro/templates/base/.circleci/_executors.yml +11 -0
  40. data/lib/roro/templates/base/.circleci/_major_only.yml +4 -0
  41. data/lib/roro/templates/base/.circleci/_version.yml +1 -0
  42. data/lib/roro/{cli/templates → templates}/base/.circleci/_workflow.yml +0 -0
  43. data/lib/roro/{cli/templates → templates}/base/.circleci/config.job-example.yml +5 -5
  44. data/lib/roro/{cli/templates → templates}/base/.circleci/jobs/_build.yml +0 -0
  45. data/lib/roro/{cli/templates → templates}/base/.circleci/jobs/_release.yml +0 -0
  46. data/lib/roro/{cli/templates → templates}/base/.circleci/workflows/_build_release.yml +0 -0
  47. data/lib/roro/{cli/templates → templates}/base/.dockerignore +0 -0
  48. data/lib/roro/{cli/templates → templates}/base/dotenv +0 -0
  49. data/lib/roro/{cli/templates → templates}/base/jumpstart/.keep +0 -0
  50. data/lib/roro/{cli/templates → templates}/base/jumpstart/Dockerfile.tt +0 -0
  51. data/lib/roro/{cli/templates → templates}/base/jumpstart/docker-compose.yml +0 -0
  52. data/lib/roro/{cli/templates → templates}/base/jumpstart/docker-entrypoint.sh +0 -0
  53. data/lib/roro/{cli/templates → templates}/base/livereload/hosts.example +0 -0
  54. data/lib/roro/{cli/templates → templates}/base/roro/.keep +0 -0
  55. data/lib/roro/{cli/templates → templates}/base/roro/roro/.keep +0 -0
  56. data/lib/roro/{cli/templates → templates}/base/roro/roro/containers/.keep +0 -0
  57. data/lib/roro/{cli/templates → templates}/base/roro/roro/containers/app/.keep +0 -0
  58. data/lib/roro/{cli/templates → templates}/base/roro/roro/containers/frontend/.keep +0 -0
  59. data/lib/roro/{cli/templates → templates}/base/roro/roro/docker-entrypoint.sh.tt +0 -0
  60. data/lib/roro/{cli/templates → templates}/rails/.circleci/.keep +0 -0
  61. data/lib/roro/{cli/templates → templates}/rails/.circleci/config.yml.tt +4 -6
  62. data/lib/roro/{cli/templates → templates}/rails/.circleci/jobs/_build.yml +4 -6
  63. data/lib/roro/templates/rails/.circleci/jobs/_push.yml +11 -0
  64. data/lib/roro/templates/rails/.circleci/jobs/_test.yml +12 -0
  65. data/lib/roro/{cli/templates → templates}/rails/.circleci/setup-gem-credentials.sh +0 -0
  66. data/lib/roro/templates/rails/.circleci/workflows/_build_test_push.yml +12 -0
  67. data/lib/roro/{cli/templates → templates}/rails/.keep +0 -0
  68. data/lib/roro/templates/rails/Dockerfile.greenfield.tt +51 -0
  69. data/lib/roro/{cli/templates → templates}/rails/config/database.mysql.yml +0 -0
  70. data/lib/roro/{cli/templates → templates}/rails/config/database.pg.yml +2 -3
  71. data/lib/roro/{cli/templates/stories → templates/rails/database}/with_mysql/_service.yml +0 -0
  72. data/lib/roro/{cli/templates → templates}/rails/database/with_postgresql/.keep +0 -0
  73. data/lib/roro/{cli/templates/stories → templates/rails/database}/with_postgresql/_service.yml +0 -0
  74. data/lib/roro/{cli/templates → templates}/rails/docker-compose.yml.tt +3 -3
  75. data/lib/roro/{cli/templates → templates}/rails/dotenv/.keep +0 -0
  76. data/lib/roro/templates/rails/dotenv/database.mysql.env.tt +6 -0
  77. data/lib/roro/templates/rails/dotenv/database.pg.env.tt +4 -0
  78. data/lib/roro/{cli/templates → templates}/rails/dotenv/web.env.tt +0 -0
  79. data/lib/roro/templates/rails/kube.rake.tt +114 -0
  80. data/lib/roro/{cli/templates → templates}/rails/roro/.keep +0 -0
  81. data/lib/roro/{cli/templates → templates}/rails/roro/containers/.keep +0 -0
  82. data/lib/roro/{cli/templates → templates}/rails/roro/containers/app/.keep +0 -0
  83. data/lib/roro/templates/rails/roro/containers/app/Dockerfile.tt +34 -0
  84. data/lib/roro/{cli/templates → templates}/rails/roro/containers/frontend/.keep +0 -0
  85. data/lib/roro/{cli/templates/rails/roro/docker-entrypoint.sh.tt → templates/rails/roro/docker-entrypoint.sh} +0 -0
  86. data/lib/roro/{cli/templates/rails/roro/roro → templates/rails/roro/kube}/.keep +0 -0
  87. data/lib/roro/{cli/templates/rails/roro/roro/containers/.keep → templates/rails/roro/kube/certificate.yml.tt} +0 -0
  88. data/lib/roro/{cli/templates/rails/roro/roro/containers/app/.keep → templates/rails/roro/kube/cluster-issuer.yml.tt} +0 -0
  89. data/lib/roro/templates/rails/roro/kube/deployment.yml.tt +50 -0
  90. data/lib/roro/templates/rails/roro/kube/deployments/postgres_deploy.yaml +47 -0
  91. data/lib/roro/templates/rails/roro/kube/deployments/rails_deploy.yaml +62 -0
  92. data/lib/roro/templates/rails/roro/kube/deployments/redis_deploy.yaml +23 -0
  93. data/lib/roro/templates/rails/roro/kube/deployments/sidekiq_deploy.yaml +56 -0
  94. data/lib/roro/{cli/templates/rails/roro/roro/containers/frontend/.keep → templates/rails/roro/kube/ingress.yml.tt} +0 -0
  95. data/lib/roro/templates/rails/roro/kube/ingresses/ingress.yaml +13 -0
  96. data/lib/roro/{cli/templates/ruby_gem/.circleci/.keep → templates/rails/roro/kube/job-migrate.yml.tt} +0 -0
  97. data/lib/roro/templates/rails/roro/kube/jobs/setup.yaml +42 -0
  98. data/lib/roro/templates/rails/roro/kube/secret-digital-ocean.yml.tt +4 -0
  99. data/lib/roro/templates/rails/roro/kube/service.yml.tt +10 -0
  100. data/lib/roro/templates/rails/roro/kube/services/postgres_svc.yaml +13 -0
  101. data/lib/roro/templates/rails/roro/kube/services/rails_svc.yaml +13 -0
  102. data/lib/roro/templates/rails/roro/kube/services/redis_svc.yaml +13 -0
  103. data/lib/roro/templates/rails/roro/kube/volumes/postgres_volumes.yaml +25 -0
  104. data/lib/roro/{cli/templates/ruby_gem/roro/containers → templates/ruby_gem/.circleci}/.keep +0 -0
  105. data/lib/roro/{cli/templates → templates}/ruby_gem/.circleci/config.yml.tt +4 -4
  106. data/lib/roro/templates/ruby_gem/.circleci/jobs/_test.yml +4 -0
  107. data/lib/roro/{cli/templates → templates}/ruby_gem/.circleci/setup-gem-credentials.sh +0 -0
  108. data/lib/roro/{cli/templates → templates}/ruby_gem/docker-compose.yml +0 -0
  109. data/lib/roro/{cli/templates/ruby_gem/roro/keys → templates/ruby_gem/roro/containers}/.keep +0 -0
  110. data/lib/roro/{cli/templates → templates}/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +1 -1
  111. data/lib/roro/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +1 -0
  112. data/lib/roro/{cli/templates/stories → templates/ruby_gem/roro/keys}/.keep +0 -0
  113. data/lib/roro/version.rb +1 -1
  114. metadata +101 -80
  115. data/lib/roro/cli/base/base.rb +0 -8
  116. data/lib/roro/cli/base/base_files.rb +0 -24
  117. data/lib/roro/cli/base/check_dependencies.rb +0 -97
  118. data/lib/roro/cli/base/continuous_integration.rb +0 -13
  119. data/lib/roro/cli/base/utilities.rb +0 -38
  120. data/lib/roro/cli/configuration.rb +0 -69
  121. data/lib/roro/cli/generate/config.rb +0 -11
  122. data/lib/roro/cli/generate/config/rails.rb +0 -17
  123. data/lib/roro/cli/rollon/rails.rb +0 -47
  124. data/lib/roro/cli/rollon/stories/stories.rb +0 -3
  125. data/lib/roro/cli/roro_configurator.yml +0 -157
  126. data/lib/roro/cli/templates/base/.circleci/_defaults.yml +0 -17
  127. data/lib/roro/cli/templates/base/.roro_config.yml +0 -15
  128. data/lib/roro/cli/templates/rails/.circleci/jobs/_push.yml +0 -23
  129. data/lib/roro/cli/templates/rails/.circleci/jobs/_test.yml +0 -13
  130. data/lib/roro/cli/templates/rails/.circleci/workflows/_build_test_push.yml +0 -9
  131. data/lib/roro/cli/templates/rails/Dockerfile.greenfield.tt +0 -47
  132. data/lib/roro/cli/templates/rails/database/with_mysql/_service.yml +0 -10
  133. data/lib/roro/cli/templates/rails/database/with_postgresql/_service.yml +0 -7
  134. data/lib/roro/cli/templates/rails/dotenv/database.mysql.env.tt +0 -3
  135. data/lib/roro/cli/templates/rails/dotenv/database.pg.env.tt +0 -4
  136. data/lib/roro/cli/templates/rails/roro/containers/app/Dockerfile.tt +0 -88
  137. data/lib/roro/cli/templates/rails/roro/roro/docker-entrypoint.sh.tt +0 -8
  138. data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +0 -1
  139. data/lib/roro/cli/templates/stories/ruby_gem/with_ci_cd/_build.yml +0 -11
  140. data/lib/roro/cli/templates/stories/with_postgresql/.keep +0 -0
  141. data/lib/tasks/deploy.rake +0 -126
@@ -0,0 +1,34 @@
1
+ ## The FROM instruction below builds our first layer using an official image:
2
+ FROM ruby:<%= config[:ruby_version] %>-alpine
3
+
4
+ LABEL maintainer="<%= config[:docker_email] %> using RoRo"
5
+
6
+ # Add basic packages
7
+ RUN apk add --no-cache \
8
+ build-base \
9
+ postgresql-dev \
10
+ nodejs \
11
+ yarn \
12
+ tzdata \
13
+ file
14
+
15
+ ## Set APP_HOME and BUNDLE_PATH as using ENV instructions:
16
+ ENV APP_HOME /usr/src/app/
17
+ ENV BUNDLE_PATH /gems
18
+
19
+ ## Create both as directories to make sure they exist:
20
+ RUN mkdir -p ${APP_HOME}
21
+ RUN mkdir ${BUNDLE_PATH}
22
+
23
+ ## Tell Docker to create volumes for our workspace and gems
24
+ ## so other containers can access them.
25
+
26
+ RUN gem install bundler:2.1.4
27
+
28
+ WORKDIR ${APP_HOME}
29
+
30
+ COPY Gemfile* ./
31
+
32
+ RUN bundle --jobs 4
33
+ COPY . ${APP_HOME}
34
+
@@ -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"
@@ -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