roro 0.3.17 → 0.3.18

Sign up to get free protection for your applications and to get access to all the features.
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