tpt-rails 1.4.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
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 +3 -2
  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 +35 -40
  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: d7990c91ca054f067f184b1ba9bb3ddfd43fc21ec0006b1600ed0b5ac54631fa
4
- data.tar.gz: d4971b9eb12c19ee4cac5053dcea9260cf6edef742e32a2acda6190bca56744a
3
+ metadata.gz: 0aac14c9d173af50335042c50b4831a94aae59d754e93ff5c9e7221094516679
4
+ data.tar.gz: d76804b0ecb5f42a93d62cb502bbfee0c18849b50154b7702e3bfd12be27ba1d
5
5
  SHA512:
6
- metadata.gz: 5747eccc8946d8d082aa40c7a815b37b38833a4af2bda0c38ab870c03e8a05f09dfc747478155065e253c10b1979aa59d36e91f218abed503466efac62e12c2a
7
- data.tar.gz: 36800d28c159f7e3a14e6ab753955dd19d79449bdbb00679544e88920d249d74eab5d460ea991331564d493b85606722f540120d96e61a5d17774e0c3e01280f
6
+ metadata.gz: 1b11d48d48cccc11b32aeff9fa8500d4414fbbb68235659bf0d6a6059cef79f213c2dcee6e1c86481473879f99f41621e56d017b36ce3d400aba7548c14cbd07
7
+ data.tar.gz: 5516c6cf9f62916825d8558d82db9b9131cafe295c6cf0a80f81d0d0d8aa83d645cfa92681f51811db9dccf7e2702747ac16cb899dd7b512b631e3a3b0d032ad
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 }}
@@ -38,7 +39,7 @@ spec:
38
39
  tpt/creator: {{ .Values.annotations.creator | default "UNKNOWN" | quote }}
39
40
  annotations:
40
41
  buildID: "{{ .Values.buildID }}"
41
- sidecar.istio.io/inject: "true"
42
+ sidecar.istio.io/inject: "false"
42
43
  spec:
43
44
  # Specifies where our Kube secrets are coming from
44
45
  imagePullSecrets:
@@ -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 }}