tpt-rails 1.4.0.rc1 → 1.5.0

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/lib/generators/{tpt_rails → tpt/rails}/configuration/configuration_generator.rb +0 -0
  4. data/lib/generators/tpt/rails/configuration/templates/config/initializers/tpt_rails.rb +14 -0
  5. data/lib/generators/tpt/rails/continuous_integration/continuous_integration_generator.rb +7 -0
  6. data/lib/generators/tpt/rails/continuous_integration/templates/ci/Dockerfile.tt +42 -0
  7. data/lib/generators/{tpt_rails → tpt/rails}/continuous_integration/templates/ci/docker-compose.yaml.tt +1 -3
  8. data/lib/generators/tpt/rails/continuous_integration/templates/ci/tasks/project.test.unit.tt +22 -0
  9. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/kubernetes_generator.rb +17 -52
  10. data/lib/generators/tpt/rails/kubernetes/templates/Dockerfile.tt +56 -0
  11. data/lib/generators/tpt/rails/kubernetes/templates/entrypoint.sh +9 -0
  12. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/Chart.yaml.tt +1 -1
  13. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/README.md +6 -2
  14. data/lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/requirements.yaml.tt +9 -0
  15. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/NOTES.txt.tt +0 -0
  16. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/_env.yaml +0 -0
  17. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/_helpers.tpl.tt +4 -0
  18. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/autoscaler.yaml.tt +0 -0
  19. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/deployment.yaml.tt +2 -1
  20. data/lib/generators/{tpt_rails/kubernetes/templates/kubernetes/helm/templates/hooks/db-migrate.yaml.tt → tpt/rails/kubernetes/templates/kubernetes/helm/templates/hooks/db-prepare.yaml.tt} +6 -3
  21. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/service.yaml.tt +2 -0
  22. data/lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/values.prod.yaml.tt +82 -0
  23. data/lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/values.staging.yaml.tt +125 -0
  24. data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/values.yaml.tt +85 -14
  25. data/lib/generators/{tpt_rails → tpt/rails}/postman/postman.yaml.tt +0 -0
  26. data/lib/tpt/rails/internal/error_reporter.rb +1 -1
  27. data/lib/tpt/rails/version.rb +2 -1
  28. metadata +37 -42
  29. data/lib/generators/tpt_rails/configuration/templates/config/initializers/tpt_rails.rb +0 -10
  30. data/lib/generators/tpt_rails/continuous_integration/continuous_integration_generator.rb +0 -17
  31. data/lib/generators/tpt_rails/continuous_integration/templates/ci/Dockerfile.tt +0 -31
  32. data/lib/generators/tpt_rails/continuous_integration/templates/ci/tasks/project.test.unit +0 -12
  33. data/lib/generators/tpt_rails/continuous_integration/templates/ci/test.Jenkinsfile.tt +0 -40
  34. data/lib/generators/tpt_rails/continuous_integration/templates/ci/test.config.xml.tt +0 -76
  35. data/lib/generators/tpt_rails/continuous_integration/templates/ci/tptcd.Jenkinsfile.tt +0 -7
  36. data/lib/generators/tpt_rails/continuous_integration/templates/ci/tptci.Jenkinsfile.tt +0 -7
  37. data/lib/generators/tpt_rails/kubernetes/templates/Dockerfile.tt +0 -41
  38. data/lib/generators/tpt_rails/kubernetes/templates/entrypoint.sh +0 -13
  39. data/lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/requirements.yaml.tt +0 -8
  40. data/lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/values.prod.yaml.tt +0 -52
  41. data/lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/values.staging.yaml.tt +0 -52
  42. data/lib/tasks/tpt/rails_tasks.rake +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b14bdc3ce7ea3aedee1b055dfdb4ef8cdc6fbcae92fb3db5ec3751f3dda7a787
4
- data.tar.gz: fd51b3732c7771868049abb884dfd37789d7199c07777f300d899d344f5ae5d4
3
+ metadata.gz: bdc8c4374f7b3bf47715b791d8d6f04295818b075210ef382c5f57b138f90c49
4
+ data.tar.gz: e809b8da64edc2b4ebebfd87f2e301475d6b6117fccb3acc0aed997b459d9218
5
5
  SHA512:
6
- metadata.gz: da90f352cf93c79c434999c574279add0dd3e2af36c53f2fe8f148dfe6b981f3c83b5f454316507191c52085f1bf0fdd03c2bca5caadbb5122096cdb6b57604c
7
- data.tar.gz: 88e4a35987347c990aacb29e80c80528f8e3859105b2afa01e11719d0b727ebf97623652b5d3b0cf8397498fb5a5c61ccdf08f2477486bcd0036c7ac7a8d85e1
6
+ metadata.gz: c7abc446ff40916c9872b910ff44a06ac502ebe459bc65b7eea13a0ff38da1fa877e63ac3f3b1c413ed054d7b9c22290c05b941592d5e2e3908378d27b2da99e
7
+ data.tar.gz: 812eb1ab44fedbb0e5e42e8d5ac16eeb6e46b74421d7d962c89266dc572b2540b26feaf914547403d477ac3cc220b38ee1e35971d4ba9fb00e61c48c83322cd3
data/README.md CHANGED
@@ -11,7 +11,7 @@ automatically do the following for you.**
11
11
 
12
12
  ```sh
13
13
  bundle add tpt-rails --git 'git@github.com:TeachersPayTeachers/tpt-rails'
14
- rails generate tpt_rails:configure
14
+ rails generate tpt:rails:configuration
15
15
  ```
16
16
 
17
17
  ### Configuration
@@ -23,12 +23,12 @@ See the documentation in [lib/tpt/rails.rb](lib/tpt/rails.rb).
23
23
 
24
24
  For Kubernetes configuration:
25
25
  ```sh
26
- rails generate tpt_rails:kubernetes
26
+ rails generate tpt:rails:kubernetes
27
27
  ```
28
28
 
29
29
  For CI/CD configuration:
30
30
  ```sh
31
- rails generate tpt_rails:continuous_integration
31
+ rails generate tpt:rails:continuous_integration
32
32
  ```
33
33
 
34
34
  ### Overview
@@ -0,0 +1,14 @@
1
+ Tpt::Rails.configure do |config|
2
+ config.app_name = ENV.fetch('APP_NAME')
3
+ config.app_env = if ENV['APP_ENV_NAME'].present? && ENV['APP_ENV_NAME'] != 'default'
4
+ "#{ENV.fetch('APP_ENV')}-#{ENV.fetch('APP_ENV_NAME')}"
5
+ else
6
+ ENV.fetch('APP_ENV')
7
+ end
8
+
9
+ config.rollbar_access_token = ''
10
+ config.rollbar_enabled = ENV["ROLLBAR_ENABLED"] == '1'
11
+
12
+ config.datadog_statsd_url = ENV["DOGSTATSD_URL"].presence
13
+ config.datadog_trace_url = ENV["DATADOG_TRACE_URL"].presence
14
+ end
@@ -0,0 +1,7 @@
1
+ class Tpt::Rails::ContinuousIntegrationGenerator < ::Rails::Generators::Base
2
+ source_root File.expand_path('templates', __dir__)
3
+
4
+ def setup_continuous_integration
5
+ directory('ci')
6
+ end
7
+ end
@@ -0,0 +1,42 @@
1
+ FROM teacherspayteachers/tptci as tptci
2
+ FROM ruby:<%= RUBY_VERSION %>-alpine
3
+
4
+ ENV LANG C.UTF-8
5
+
6
+ RUN \
7
+ apk add --no-cache \
8
+ # temporarily adding git to allow using gems from git sources
9
+ git \
10
+ # bash is nice to have when we need a shell into a container
11
+ bash \
12
+ # tzdata is required by rails to avoid "tzinfo-data is not present. Please add gem 'tzinfo-data' to your Gemfile"
13
+ tzdata \
14
+ # busybox is useful utilities when we need a shell into a container
15
+ busybox \
16
+ # curl is useful when we need a shell into a container
17
+ curl \
18
+ # screen helps with long-running tasks in one-off pods
19
+ screen \
20
+ # netcat is for detecting when the DB is ready during CI testing
21
+ netcat-openbsd \
22
+ # build-base is required for mysql2 and pg gems
23
+ build-base \
24
+ # mariadb-dev is required for mysql2
25
+ mariadb-dev
26
+
27
+ RUN gem install bundler -v '~> 2.2'
28
+
29
+ RUN bundle config --global ignore_messages true
30
+
31
+ RUN mkdir /app
32
+ WORKDIR /app
33
+
34
+ ENV RAILS_ENV=test APP_ENV=test APP_NAME=<%= Tpt::Rails.app_name %>
35
+
36
+ COPY Gemfile Gemfile.lock .ruby-version /app/
37
+
38
+ RUN bundle install --jobs=4 --retry=3
39
+
40
+ COPY . .
41
+
42
+ COPY --from=tptci /usr/bin/tptci /usr/bin/tptci
@@ -3,7 +3,7 @@ services:
3
3
  db:
4
4
  image: mysql:5.7
5
5
  ports:
6
- - '3306:3306'
6
+ - '3306'
7
7
  environment:
8
8
  MYSQL_ROOT_PASSWORD: ''
9
9
  MYSQL_ALLOW_EMPTY_PASSWORD: '1'
@@ -12,8 +12,6 @@ services:
12
12
  build:
13
13
  context: ../
14
14
  dockerfile: ci/Dockerfile
15
- args:
16
- GITHUB_TOKEN: ${GITHUB_TOKEN}
17
15
  links:
18
16
  - db
19
17
  depends_on:
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+
3
+ if [ "$CI_PLATFORM" = "brigade" ]; then
4
+ export RAILS_LOG_TO_STDOUT='1'
5
+ export RAILS_ENV='test'
6
+ export DISABLE_SPRING='1'
7
+
8
+ MYSQL_HOSTNAME="$(tptci -q print-app-name <%= Tpt::Rails.app_name %> -b mysql)"
9
+ MYSQL_PORT=3306
10
+ export DATABASE_URL="mysql2://root:123456@${MYSQL_HOSTNAME}:${MYSQL_PORT}/<%= Tpt::Rails.app_name %>_test"
11
+ fi
12
+
13
+ until nc -z -v ${MYSQL_HOSTNAME} ${MYSQL_PORT}
14
+ do
15
+ echo "Waiting for database connection..."
16
+ sleep 5
17
+ done
18
+
19
+ exec bin/rails db:prepare test
20
+
21
+ # Uncomment to run system tests
22
+ # exec bin/rails test:system
@@ -15,18 +15,15 @@ class Tpt::Rails::KubernetesGenerator < ::Rails::Generators::Base
15
15
  check_dependencies
16
16
 
17
17
  secrets_name = "#{Tpt::Rails.app_name}-secrets"
18
+ secrets_key = "secret-key-base"
19
+ secrets_value = SecureRandom.alphanumeric(32).downcase
18
20
 
19
- tpt_yaml = generate_tpt_yaml
20
- team_name = tpt_yaml.fetch('owner')
21
- app_type = tpt_yaml.fetch('target')
21
+ team_name = ask("What's your GitHub team name? Something like `core-services`").strip
22
+ app_type = "internal"
22
23
 
23
24
  tpt_config = get_tpt_config
24
25
  tpt_user_alias = tpt_config.fetch('user.alias')
25
26
 
26
- default_email = get_default_email_address
27
- email = ask("What's the maintainer email address? (#{default_email})").strip
28
- email = email.presence || default_email || 'FIXME'
29
-
30
27
  template 'Dockerfile'
31
28
  template 'entrypoint.sh'
32
29
  template '.dockerignore'
@@ -35,7 +32,7 @@ class Tpt::Rails::KubernetesGenerator < ::Rails::Generators::Base
35
32
  'kubernetes',
36
33
  team_name: team_name,
37
34
  secrets_name: secrets_name,
38
- maintainer_email: email,
35
+ secrets_key: secrets_key,
39
36
  app_type: app_type,
40
37
  )
41
38
 
@@ -43,8 +40,9 @@ class Tpt::Rails::KubernetesGenerator < ::Rails::Generators::Base
43
40
  run('helm dependency update', abort_on_failure: true)
44
41
  end
45
42
 
46
- add_kube_secret(secrets_name)
43
+ add_kube_secret(secrets_name, secrets_key, secrets_value)
47
44
 
45
+ # TODO: move the below instruction to a wiki page
48
46
  say(<<~MESSAGE)
49
47
 
50
48
  ********************************************************************************
@@ -56,16 +54,12 @@ class Tpt::Rails::KubernetesGenerator < ::Rails::Generators::Base
56
54
  !
57
55
  ! 1. Review and commit these changes
58
56
  ! 2. Push your changes up to a Github repository
59
- ! 3. Run `tpt project check`
57
+ ! 3. Follow the docker instructions on
58
+ ! https://teacherspayteachers.atlassian.net/wiki/spaces/SER/pages/1521090593/Getting+started+Create+a+new+serverless+service#Build-and-push-your-project-to-DockerHub
60
59
  ! 4. Deploy to an ODE with `tpt project push`
61
- ! 5. Give "Read-only" access to the Docker Hub "readonly" user:
62
- ! - Go to https://hub.docker.com/repository/docker/teacherspayteachers/#{Tpt::Rails.app_name}/permissions
63
- ! - Choose "readonly" in the "Team" dropdown box
64
- ! - Choose "Read-only" in the "Permission" box
65
- ! - Click the "+" button on the right-hand side
66
- ! 6. Monitor the status of your ODE deploy with:
60
+ ! 5. Monitor the status of your ODE deploy with:
67
61
  ! kubectl get pods --namespace #{tpt_user_alias} | grep #{Tpt::Rails.app_name}
68
- ! 7. When your ODE is ready you can visit it here:
62
+ ! 6. When your ODE is ready you can visit it here:
69
63
  ! http://#{Tpt::Rails.app_name}--#{tpt_user_alias}.ode.tptpm.info/#{Tpt::Rails::Engine.instance.routes.url_helpers.health_check_path}
70
64
  !
71
65
  ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -104,50 +98,21 @@ class Tpt::Rails::KubernetesGenerator < ::Rails::Generators::Base
104
98
  Tpt::Rails.app_name =~ VALID_APP_NAME
105
99
  end
106
100
 
107
- def generate_tpt_yaml
108
- # TODO: Add an options to `tpt project init` that allows passing in these values
109
- say(<<~TEXT)
110
-
111
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
112
- ! IMPORTANT !
113
- ! In the prompt below, please enter "#{Tpt::Rails.app_name}" for the "project name"
114
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
115
-
116
- TEXT
117
-
118
- run('tpt project init --force', abort_on_failure: true)
119
-
120
- YAML.load(run('cat tpt.yaml', capture: true, abort_on_failure: true))
121
- end
122
-
123
101
  def get_tpt_config
124
102
  conf = run('tpt config get', capture: true, abort_on_failure: true)
125
103
  YAML.load(conf)
104
+ rescue
105
+ say("Failed to get tpt config")
106
+ raise
126
107
  end
127
108
 
128
- def get_default_email_address
129
- run('git config user.email', capture: true, abort_on_failure: false)&.strip.presence
130
- end
131
-
132
- def add_kube_secret(secrets_name)
133
- secret = run('cat config/master.key', capture: true, abort_on_failure: true).strip
109
+ def add_kube_secret(secrets_name, secrets_key, secrets_value)
134
110
  key_exists = run("kubectl get secret #{secrets_name} --context='#{ODE_KUBE_CONTEXT}' >/dev/null 2>&1", abort_on_failure: false)
135
111
 
136
- if key_exists
137
- say "Kube secret #{secrets_name} already exists. Updating it…"
138
- ENV['KUBE_GENERATOR_RAILS_MASTER_KEY'] = Base64.strict_encode64(secret)
139
- run(
140
- <<~CMD,
141
- kubectl get secret #{secrets_name} --context=#{ODE_KUBE_CONTEXT} --output=json \
142
- | jq --arg key $KUBE_GENERATOR_RAILS_MASTER_KEY '.data["rails-master-key"]=$key' \
143
- | kubectl apply --context=#{ODE_KUBE_CONTEXT} -f -
144
- CMD
145
- abort_on_failure: true,
146
- )
147
- else
112
+ if !key_exists
148
113
  say "Kube secret #{secrets_name} not found. Creating it…"
149
114
  run(
150
- "kubectl create secret generic #{secrets_name} --from-literal='rails-master-key=#{secret}' --context='#{ODE_KUBE_CONTEXT}'",
115
+ "kubectl create secret generic #{secrets_name} --from-literal='#{secrets_key}=#{secrets_value}' --context='#{ODE_KUBE_CONTEXT}'",
151
116
  abort_on_failure: true,
152
117
  )
153
118
  end
@@ -0,0 +1,56 @@
1
+ FROM ruby:<%= RUBY_VERSION %>-alpine
2
+
3
+ ENV LANG C.UTF-8
4
+
5
+ RUN \
6
+ apk add --no-cache \
7
+ # temporarily adding git to allow using gems from git sources
8
+ git \
9
+ # bash is nice to have when we need a shell into a container
10
+ bash \
11
+ # tzdata is required by rails to avoid "tzinfo-data is not present. Please add gem 'tzinfo-data' to your Gemfile"
12
+ tzdata \
13
+ # busybox is useful utilities when we need a shell into a container
14
+ busybox \
15
+ # curl is useful when we need a shell into a container
16
+ curl \
17
+ # screen helps with long-running tasks in one-off pods
18
+ screen \
19
+ # netcat is for detecting when the DB is ready during Jenkins testing
20
+ netcat-openbsd \
21
+ # build-base is required for mysql2 and pg gems
22
+ build-base \
23
+ # mariadb-dev is required for mysql2
24
+ mariadb-dev \
25
+ # mariadb-client allows us to perform manual mysql queries via console when needed
26
+ mariadb-client
27
+
28
+ RUN gem install bundler -v '~> 2.2'
29
+
30
+ RUN bundle config --global ignore_messages true
31
+
32
+ RUN mkdir /app
33
+ WORKDIR /app
34
+
35
+ # Set production env for asset compilation
36
+ ARG RAILS_ENV=production
37
+ ARG APP_ENV=production
38
+ ARG APP_NAME=<%= Tpt::Rails.app_name %>
39
+
40
+ # Add a script to be executed every time the container starts.
41
+ COPY entrypoint.sh /usr/bin/
42
+
43
+ COPY Gemfile Gemfile.lock .ruby-version ./
44
+ RUN \
45
+ bundle config without 'development test' && \
46
+ bundle install --jobs=4 --retry=3
47
+
48
+ COPY . .
49
+
50
+ # TODO: Delete this?
51
+ ENTRYPOINT ["entrypoint.sh"]
52
+ CMD ["rails", "server", "-b", "0.0.0.0"]
53
+ EXPOSE 3000
54
+
55
+ ARG TPT_RELEASE_VERSION
56
+ ENV TPT_RELEASE_VERSION=$TPT_RELEASE_VERSION
@@ -0,0 +1,9 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ if [ -f /app/tmp/pids/server.pid ]; then
5
+ rm /app/tmp/pids/server.pid
6
+ fi
7
+
8
+ echo "Starting server"
9
+ exec "$@"
@@ -12,5 +12,5 @@ keywords: [odev2, rails, service-template, '<%= Tpt::Rails.app_name %>', '<%= co
12
12
  home: https://www.teacherspayteachers.com
13
13
  icon: https://static1.teacherspayteachers.com/tpt-frontend/releases/production/current/a24f03b12028dbc93cf182318e6993e5.svg
14
14
  sources: ['https://github.com/TeachersPayTeachers/<%= Tpt::Rails.app_name %>']
15
- maintainers: [{name: '<%= config.fetch(:team_name) %>', email: '<%= config.fetch(:maintainer_email) %>'}]
15
+ maintainers: [{name: '<%= config.fetch(:team_name) %>', email: '<%= config.fetch(:team_name) %>@teacherspayteachers.com'}]
16
16
  engine: gotpl # yaml parsing engine, just leave this alone
@@ -16,8 +16,12 @@ There are a couple files that constitute a Chart. Here is an overview:
16
16
  └── kubernetes
17
17
  └── helm
18
18
  ├── charts
19
- │ ├── copy-secrets-1.1.5.tgz
19
+ │ ├── db-migrate-0.2.2.tgz
20
+ │ ├── mysql-1.6.9.tgz
20
21
  ├── templates
22
+ │ ├── hooks
23
+ │ │ ├── db-prepare.yaml
24
+ │ ├── _env.yaml
21
25
  │ ├── _helpers.tpl
22
26
  │ ├── autoscaler.yaml
23
27
  │ ├── deployment.yaml
@@ -28,7 +32,7 @@ There are a couple files that constitute a Chart. Here is an overview:
28
32
  ├── README.md
29
33
  ├── requirements.lock
30
34
  ├── requirements.yaml
31
- ├── values.dev.yaml
35
+ ├── values.prod.yaml
32
36
  ├── values.staging.yaml
33
37
  └── values.yaml
34
38
  ```
@@ -0,0 +1,9 @@
1
+ dependencies:
2
+ - name: mysql
3
+ version: 1.6.9
4
+ repository: "@stable"
5
+ condition: mysql.enabled
6
+ - name: db-migrate
7
+ version: 0.2.2
8
+ repository: https://chartmuseum.tptpm.info
9
+ condition: db-migrate.enabled
@@ -44,7 +44,11 @@ Get service.
44
44
  {{- if eq .service.useIngress true -}}
45
45
  {{- printf "%s://%s-%s:%v/%s" .service.protocol .service.hostName .domain .service.port $trimPath -}}
46
46
  {{- else -}}
47
+ {{- if or (eq .env "staging") (eq .env "production") -}}
47
48
  {{- printf "%s://%s:%v/%s" .service.protocol .service.hostName .service.port $trimPath -}}
49
+ {{- else -}}
50
+ {{- printf "%s://%s--%s:%v/%s" .service.protocol .service.hostName .namespace .service.port $trimPath -}}
51
+ {{- end -}}
48
52
  {{- end -}}
49
53
  {{- end -}}
50
54
 
@@ -15,6 +15,8 @@ metadata:
15
15
  tpt/owner: {{ .Values.annotations.owner }}
16
16
  tpt/creator: {{ .Values.annotations.creator | default "UNKNOWN" | quote }}
17
17
  tpt/release: "{{ .Release.Name }}"
18
+ tpt/costEnv: {{ .Values.annotations.costEnv | quote }}
19
+ tpt/costCategory: {{ .Values.annotations.costCategory | quote }}
18
20
  spec:
19
21
  strategy:
20
22
  type: RollingUpdate
@@ -23,7 +25,6 @@ spec:
23
25
  selector:
24
26
  matchLabels:
25
27
  app: {{ template "<%= Tpt::Rails.app_name %>.fullname" . }}
26
- replicas: {{ .Values.replicas }}
27
28
  # Max number of replicat sets to retain.
28
29
  # Sets exceeding this limit will get deleted
29
30
  revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
@@ -1,8 +1,8 @@
1
- {{- if .Values.migrateCommand -}}
1
+ {{- if .Values.dbPrepare.enabled }}
2
2
  apiVersion: batch/v1
3
3
  kind: Job # runs once and then stops
4
4
  metadata:
5
- name: {{ template "<%= Tpt::Rails.app_name %>.fullname" . }}-db-migrate
5
+ name: {{ template "<%= Tpt::Rails.app_name %>.fullname" . }}-db-prepare
6
6
  labels:
7
7
  app: {{ template "<%= Tpt::Rails.app_name %>.name" . }}
8
8
  chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
@@ -12,6 +12,8 @@ metadata:
12
12
  tpt/owner: {{ .Values.annotations.owner }}
13
13
  tpt/creator: {{ .Values.annotations.creator | default "UNKNOWN" | quote }}
14
14
  tpt/release: "{{ .Release.Name }}"
15
+ tpt/costEnv: {{ .Values.annotations.costEnv | quote }}
16
+ tpt/costCategory: {{ .Values.annotations.costCategory | quote }}
15
17
  annotations:
16
18
  # post-install: after initial creation of stack, pre-upgrade: before deploying new code
17
19
  "helm.sh/hook": "post-install,pre-upgrade"
@@ -42,7 +44,7 @@ spec:
42
44
  imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
43
45
  command: ["/bin/sh"]
44
46
  # This is what causes a different command to be run for this job
45
- args: ["-c", "{{ .Values.migrateCommand }}"]
47
+ args: ["-c", "{{ .Values.dbPrepare.command }}"]
46
48
  # Specifies provisioning requests & limits (memory and CPU)
47
49
  resources:
48
50
  limits:
@@ -53,6 +55,7 @@ spec:
53
55
  cpu: {{ .Values.resources.requests.cpu }}
54
56
  env:
55
57
  {{- include "env" . | indent 10 }}
58
+ {{- include "<%= Tpt::Rails.app_name %>.services" . | nindent 10 }}
56
59
  {{- if .Values.secrets }}
57
60
  {{ toYaml .Values.secrets | trim | nindent 10 }}
58
61
  {{- end }}