tpt-rails 1.4.1 → 1.5.2
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.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/lib/generators/{tpt_rails → tpt/rails}/configuration/configuration_generator.rb +0 -0
- data/lib/generators/tpt/rails/configuration/templates/config/initializers/tpt_rails.rb +14 -0
- data/lib/generators/tpt/rails/continuous_integration/continuous_integration_generator.rb +7 -0
- data/lib/generators/tpt/rails/continuous_integration/templates/ci/Dockerfile.tt +42 -0
- data/lib/generators/{tpt_rails → tpt/rails}/continuous_integration/templates/ci/docker-compose.yaml.tt +1 -3
- data/lib/generators/tpt/rails/continuous_integration/templates/ci/tasks/project.test.unit.tt +22 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/kubernetes_generator.rb +17 -52
- data/lib/generators/tpt/rails/kubernetes/templates/Dockerfile.tt +56 -0
- data/lib/generators/tpt/rails/kubernetes/templates/entrypoint.sh +9 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/Chart.yaml.tt +1 -1
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/README.md +6 -2
- data/lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/requirements.yaml.tt +9 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/NOTES.txt.tt +0 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/_env.yaml +0 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/_helpers.tpl.tt +4 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/autoscaler.yaml.tt +0 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/deployment.yaml.tt +3 -2
- 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
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/templates/service.yaml.tt +3 -0
- data/lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/values.prod.yaml.tt +84 -0
- data/lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/values.staging.yaml.tt +127 -0
- data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/values.yaml.tt +85 -14
- data/lib/generators/{tpt_rails → tpt/rails}/postman/postman.yaml.tt +0 -0
- data/lib/tpt/rails/internal/error_reporter.rb +1 -1
- data/lib/tpt/rails/version.rb +1 -1
- metadata +30 -35
- data/lib/generators/tpt_rails/configuration/templates/config/initializers/tpt_rails.rb +0 -10
- data/lib/generators/tpt_rails/continuous_integration/continuous_integration_generator.rb +0 -17
- data/lib/generators/tpt_rails/continuous_integration/templates/ci/Dockerfile.tt +0 -31
- data/lib/generators/tpt_rails/continuous_integration/templates/ci/tasks/project.test.unit +0 -12
- data/lib/generators/tpt_rails/continuous_integration/templates/ci/test.Jenkinsfile.tt +0 -40
- data/lib/generators/tpt_rails/continuous_integration/templates/ci/test.config.xml.tt +0 -76
- data/lib/generators/tpt_rails/continuous_integration/templates/ci/tptcd.Jenkinsfile.tt +0 -7
- data/lib/generators/tpt_rails/continuous_integration/templates/ci/tptci.Jenkinsfile.tt +0 -7
- data/lib/generators/tpt_rails/kubernetes/templates/Dockerfile.tt +0 -41
- data/lib/generators/tpt_rails/kubernetes/templates/entrypoint.sh +0 -13
- data/lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/requirements.yaml.tt +0 -8
- data/lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/values.prod.yaml.tt +0 -52
- data/lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/values.staging.yaml.tt +0 -52
- data/lib/tasks/tpt/rails_tasks.rake +0 -23
| @@ -17,6 +17,8 @@ metadata: | |
| 17 17 | 
             
                tpt/owner: {{ .Values.annotations.owner }}
         | 
| 18 18 | 
             
                tpt/creator: {{ .Values.annotations.creator | default "UNKNOWN" | quote }}
         | 
| 19 19 | 
             
                tpt/release: "{{ .Release.Name }}"
         | 
| 20 | 
            +
                tpt/costEnv: {{ .Values.annotations.costEnv | quote }}
         | 
| 21 | 
            +
                tpt/costCategory: {{ .Values.annotations.costCategory | quote }}
         | 
| 20 22 | 
             
              annotations:
         | 
| 21 23 | 
             
                getambassador.io/config: |
         | 
| 22 24 | 
             
                  apiVersion: ambassador/v1
         | 
| @@ -34,6 +36,7 @@ metadata: | |
| 34 36 | 
             
                      - request_label:
         | 
| 35 37 | 
             
                        - frontend
         | 
| 36 38 | 
             
            {{- if eq .Values.service.type "LoadBalancer" }}
         | 
| 39 | 
            +
                external-dns.alpha.kubernetes.io/hostname: {{ .Values.hostname }}
         | 
| 37 40 | 
             
                service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "http"
         | 
| 38 41 | 
             
                service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"
         | 
| 39 42 | 
             
                service.beta.kubernetes.io/aws-load-balancer-internal: "0.0.0.0/0"
         | 
| @@ -0,0 +1,84 @@ | |
| 1 | 
            +
            name: <%= Tpt::Rails.app_name %>
         | 
| 2 | 
            +
            deploy_env: production
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            hostname: <%= Tpt::Rails.app_name %>-production.teacherspayteachers.com
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            annotations:
         | 
| 7 | 
            +
              costEnv: production
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            image:
         | 
| 10 | 
            +
              name: <%= Tpt::Rails.app_name %>
         | 
| 11 | 
            +
              repository: teacherspayteachers/<%= Tpt::Rails.app_name %>
         | 
| 12 | 
            +
              tag: latest
         | 
| 13 | 
            +
              pullPolicy: Always
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            environment:
         | 
| 16 | 
            +
              ENVIRONMENT: production
         | 
| 17 | 
            +
              APP_ENV: production
         | 
| 18 | 
            +
              RAILS_ENV: production
         | 
| 19 | 
            +
              RACK_TIMEOUT_SERVICE_TIMEOUT: "20"
         | 
| 20 | 
            +
              RACK_TIMEOUT_TERM_ON_TIMEOUT: "5"
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              # To set up a staging/prod DB:
         | 
| 23 | 
            +
              # - Create the DB in the TpT terraform repo
         | 
| 24 | 
            +
              # - Use the root DB account to create an application DB user
         | 
| 25 | 
            +
              # - Add needed the following keys with proper values to
         | 
| 26 | 
            +
              #   the '<%= Tpt::Rails.app_name %>-secrets' kube secret:
         | 
| 27 | 
            +
              #     - <%= Tpt::Rails.app_name %>-prod-db-host
         | 
| 28 | 
            +
              #     - <%= Tpt::Rails.app_name %>-prod-db-replica-host
         | 
| 29 | 
            +
              #     - <%= Tpt::Rails.app_name %>-prod-db-name
         | 
| 30 | 
            +
              #     - <%= Tpt::Rails.app_name %>-prod-db-password
         | 
| 31 | 
            +
              #     - <%= Tpt::Rails.app_name %>-prod-db-user
         | 
| 32 | 
            +
              DATABASE_HOST: |-
         | 
| 33 | 
            +
                valueFrom:
         | 
| 34 | 
            +
                  secretKeyRef:
         | 
| 35 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 36 | 
            +
                    key: <%= Tpt::Rails.app_name %>-prod-db-host
         | 
| 37 | 
            +
              DATABASE_REPLICA_HOST: |-
         | 
| 38 | 
            +
                valueFrom:
         | 
| 39 | 
            +
                  secretKeyRef:
         | 
| 40 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 41 | 
            +
                    key: <%= Tpt::Rails.app_name %>-prod-db-replica-host
         | 
| 42 | 
            +
              DATABASE_NAME: |-
         | 
| 43 | 
            +
                valueFrom:
         | 
| 44 | 
            +
                  secretKeyRef:
         | 
| 45 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 46 | 
            +
                    key: <%= Tpt::Rails.app_name %>-prod-db-name
         | 
| 47 | 
            +
              DATABASE_PASSWORD: |-
         | 
| 48 | 
            +
                valueFrom:
         | 
| 49 | 
            +
                  secretKeyRef:
         | 
| 50 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 51 | 
            +
                    key: <%= Tpt::Rails.app_name %>-prod-db-password
         | 
| 52 | 
            +
              DATABASE_USER: |-
         | 
| 53 | 
            +
                valueFrom:
         | 
| 54 | 
            +
                  secretKeyRef:
         | 
| 55 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 56 | 
            +
                    key: <%= Tpt::Rails.app_name %>-prod-db-user
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            copy-secrets:
         | 
| 59 | 
            +
              enabled: false
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            mysql:
         | 
| 62 | 
            +
              enabled: false
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            postgresql:
         | 
| 65 | 
            +
              enabled: false
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            redis:
         | 
| 68 | 
            +
              enabled: false
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            autoscaler:
         | 
| 71 | 
            +
              minimumPods: 3
         | 
| 72 | 
            +
              maximumPods: 6
         | 
| 73 | 
            +
              targetCPUUtilizationPercentage: 70
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            rollingUpdate:
         | 
| 76 | 
            +
              maxSurge: 25%
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            # Create ELB
         | 
| 79 | 
            +
            # service:
         | 
| 80 | 
            +
            #   type: LoadBalancer
         | 
| 81 | 
            +
            #   port: 80
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            db-migrate:
         | 
| 84 | 
            +
              enabled: false
         | 
| @@ -0,0 +1,127 @@ | |
| 1 | 
            +
            name: <%= Tpt::Rails.app_name %>
         | 
| 2 | 
            +
            deploy_env: staging
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            hostname: <%= Tpt::Rails.app_name %>-staging.teacherspayteachers.com
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            annotations:
         | 
| 7 | 
            +
              costEnv: staging
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            image:
         | 
| 10 | 
            +
              name: <%= Tpt::Rails.app_name %>
         | 
| 11 | 
            +
              repository: teacherspayteachers/<%= Tpt::Rails.app_name %>
         | 
| 12 | 
            +
              tag: latest
         | 
| 13 | 
            +
              pullPolicy: Always
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            environment:
         | 
| 16 | 
            +
              APP_ENV: staging
         | 
| 17 | 
            +
              ENVIRONMENT: staging
         | 
| 18 | 
            +
              RAILS_ENV: production
         | 
| 19 | 
            +
              RACK_TIMEOUT_SERVICE_TIMEOUT: "20"
         | 
| 20 | 
            +
              RACK_TIMEOUT_TERM_ON_TIMEOUT: "1"
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              # To set up a staging/prod DB:
         | 
| 23 | 
            +
              # - Create the DB in the TpT terraform repo
         | 
| 24 | 
            +
              # - Use the root DB account to create an application DB user
         | 
| 25 | 
            +
              # - Add needed the following keys with proper values to
         | 
| 26 | 
            +
              #   the '<%= Tpt::Rails.app_name %>-secrets' kube secret:
         | 
| 27 | 
            +
              #     - <%= Tpt::Rails.app_name %>-staging-db-host
         | 
| 28 | 
            +
              #     - <%= Tpt::Rails.app_name %>-staging-db-replica-host
         | 
| 29 | 
            +
              #     - <%= Tpt::Rails.app_name %>-staging-db-name
         | 
| 30 | 
            +
              #     - <%= Tpt::Rails.app_name %>-staging-db-password
         | 
| 31 | 
            +
              #     - <%= Tpt::Rails.app_name %>-staging-db-user
         | 
| 32 | 
            +
              DATABASE_HOST: |-
         | 
| 33 | 
            +
                valueFrom:
         | 
| 34 | 
            +
                  secretKeyRef:
         | 
| 35 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 36 | 
            +
                    key: <%= Tpt::Rails.app_name %>-staging-db-host
         | 
| 37 | 
            +
              DATABASE_REPLICA_HOST: |-
         | 
| 38 | 
            +
                valueFrom:
         | 
| 39 | 
            +
                  secretKeyRef:
         | 
| 40 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 41 | 
            +
                    key: <%= Tpt::Rails.app_name %>-staging-db-replica-host
         | 
| 42 | 
            +
              DATABASE_NAME: |-
         | 
| 43 | 
            +
                valueFrom:
         | 
| 44 | 
            +
                  secretKeyRef:
         | 
| 45 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 46 | 
            +
                    key: <%= Tpt::Rails.app_name %>-staging-db-name
         | 
| 47 | 
            +
              DATABASE_PASSWORD: |-
         | 
| 48 | 
            +
                valueFrom:
         | 
| 49 | 
            +
                  secretKeyRef:
         | 
| 50 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 51 | 
            +
                    key: <%= Tpt::Rails.app_name %>-staging-db-password
         | 
| 52 | 
            +
              DATABASE_USER: |-
         | 
| 53 | 
            +
                valueFrom:
         | 
| 54 | 
            +
                  secretKeyRef:
         | 
| 55 | 
            +
                    name: <%= Tpt::Rails.app_name %>-secrets
         | 
| 56 | 
            +
                    key: <%= Tpt::Rails.app_name %>-staging-db-user
         | 
| 57 | 
            +
             | 
| 58 | 
            +
            copy-secrets:
         | 
| 59 | 
            +
              enabled: false
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            mysql:
         | 
| 62 | 
            +
              enabled: false
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            postgresql:
         | 
| 65 | 
            +
              enabled: false
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            redis:
         | 
| 68 | 
            +
              enabled: false
         | 
| 69 | 
            +
             | 
| 70 | 
            +
            autoscaler:
         | 
| 71 | 
            +
              minimumPods: 1
         | 
| 72 | 
            +
              maximumPods: 2
         | 
| 73 | 
            +
              targetCPUUtilizationPercentage: 70
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            rollingUpdate:
         | 
| 76 | 
            +
              maxSurge: 25%
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            # Create ELB
         | 
| 79 | 
            +
            # service:
         | 
| 80 | 
            +
            #   type: LoadBalancer
         | 
| 81 | 
            +
            #   port: 80
         | 
| 82 | 
            +
             | 
| 83 | 
            +
            db-migrate:
         | 
| 84 | 
            +
              enabled: false
         | 
| 85 | 
            +
              migration:
         | 
| 86 | 
            +
                env:
         | 
| 87 | 
            +
                  - name: APP_ENV
         | 
| 88 | 
            +
                    value: staging
         | 
| 89 | 
            +
                  - name: APP_NAME
         | 
| 90 | 
            +
                    value: <%= Tpt::Rails.app_name %>
         | 
| 91 | 
            +
                  # The db-migrate chart sets the following environment variables, which we can use to construct
         | 
| 92 | 
            +
                  # a Rails-friendly DB_URL.
         | 
| 93 | 
            +
                  # - PROXY_HOST
         | 
| 94 | 
            +
                  # - PROXY_PASSWORD
         | 
| 95 | 
            +
                  # - PROXY_USER
         | 
| 96 | 
            +
                  - name: DB_URL
         | 
| 97 | 
            +
                    value: "mysql2://$(PROXY_USER):$(PROXY_PASSWORD)@$(PROXY_HOST):3306/<%= Tpt::Rails.app_name %>"
         | 
| 98 | 
            +
                  # We don't override DB_MAX_EXECUTION_TIME here because it only applies to `select` queries and we
         | 
| 99 | 
            +
                  # plan to write migrations such that any `select` queries are fast.
         | 
| 100 | 
            +
                  # We specify the READ timeout because when testing that was the one that seemed to be used for
         | 
| 101 | 
            +
                  # `alter table` commands.
         | 
| 102 | 
            +
                  - name: DB_READ_TIMEOUT
         | 
| 103 | 
            +
                    value: "604800"
         | 
| 104 | 
            +
                  - name: DB_WRITE_TIMEOUT
         | 
| 105 | 
            +
                    value: "604800"
         | 
| 106 | 
            +
                  - name: RAILS_ENV
         | 
| 107 | 
            +
                    value: production
         | 
| 108 | 
            +
                  - name: SECRET_KEY_BASE
         | 
| 109 | 
            +
                    valueFrom:
         | 
| 110 | 
            +
                      secretKeyRef:
         | 
| 111 | 
            +
                        name: <%= config.fetch(:secrets_name) %>
         | 
| 112 | 
            +
                        key: <%= config.fetch(:secrets_key) %>
         | 
| 113 | 
            +
              proxy-osc:
         | 
| 114 | 
            +
                dryRun: false
         | 
| 115 | 
            +
                target:
         | 
| 116 | 
            +
                  host:
         | 
| 117 | 
            +
                    secret:
         | 
| 118 | 
            +
                      name: <%= config.fetch(:secrets_name) %>
         | 
| 119 | 
            +
                      key: <%= Tpt::Rails.app_name %>-staging-db-host
         | 
| 120 | 
            +
                  user:
         | 
| 121 | 
            +
                    secret:
         | 
| 122 | 
            +
                      name: <%= config.fetch(:secrets_name) %>
         | 
| 123 | 
            +
                      key: <%= Tpt::Rails.app_name %>-staging-db-user
         | 
| 124 | 
            +
                  password:
         | 
| 125 | 
            +
                    secret:
         | 
| 126 | 
            +
                      name: <%= config.fetch(:secrets_name) %>
         | 
| 127 | 
            +
                      key: <%= Tpt::Rails.app_name %>-staging-db-password
         | 
    
        data/lib/generators/{tpt_rails → tpt/rails}/kubernetes/templates/kubernetes/helm/values.yaml.tt
    RENAMED
    
    | @@ -9,19 +9,26 @@ deploy_env: integration | |
| 9 9 | 
             
            # There are added to Kubernetes in various ways as labels/etc
         | 
| 10 10 | 
             
            annotations:
         | 
| 11 11 | 
             
              owner: <%= config.fetch(:team_name) %>
         | 
| 12 | 
            +
              # tpt/costEnv can be [development, integration, staging, production, uncategorized]
         | 
| 13 | 
            +
              costEnv: integration
         | 
| 14 | 
            +
              # tpt/costCategory can be [core_domains, data, easel, infrastructure, kubernetes, marketplace, search, schools, uncategorized]
         | 
| 15 | 
            +
              costCategory: uncategorized
         | 
| 12 16 |  | 
| 13 17 | 
             
            # Docker image configuration for the pod
         | 
| 14 | 
            -
            image:
         | 
| 18 | 
            +
            image: &appImage
         | 
| 15 19 | 
             
              name: <%= Tpt::Rails.app_name %>
         | 
| 16 | 
            -
              repository:  | 
| 20 | 
            +
              repository: teacherspayteachers/<%= Tpt::Rails.app_name %>
         | 
| 17 21 | 
             
              tag: latest # most recently pushed
         | 
| 18 22 | 
             
              pullPolicy: Always # always pull, don't use a cached version
         | 
| 19 23 |  | 
| 20 | 
            -
            # Used by a Helm hook that  | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
            #  | 
| 24 | 
            -
             | 
| 24 | 
            +
            # Used by a Helm hook that sets up database schema and seeds.
         | 
| 25 | 
            +
            # We don't override DB_MAX_EXECUTION_TIME here because it only applies to `select` queries and we
         | 
| 26 | 
            +
            # plan to write migrations such that any `select` queries are fast.
         | 
| 27 | 
            +
            # We specify the READ timeout because when testing that was the one that seemed to be used for
         | 
| 28 | 
            +
            # `alter table` commands.
         | 
| 29 | 
            +
            dbPrepare:
         | 
| 30 | 
            +
              command: "DB_READ_TIMEOUT=600 DB_WRITE_TIMEOUT=600 bin/rails db:prepare"
         | 
| 31 | 
            +
              enabled: true
         | 
| 25 32 |  | 
| 26 33 | 
             
            revisionHistoryLimit: 5
         | 
| 27 34 |  | 
| @@ -38,12 +45,18 @@ rollingUpdate: | |
| 38 45 |  | 
| 39 46 | 
             
            mysql:
         | 
| 40 47 | 
             
              enabled: true
         | 
| 48 | 
            +
              imageTag: 5.7.12
         | 
| 41 49 | 
             
              podAnnotations:
         | 
| 42 50 | 
             
                # istio is a service mesh. the istio sidecar interferes with how other pods connect to the MySQL
         | 
| 43 51 | 
             
                # pod.
         | 
| 44 52 | 
             
                sidecar.istio.io/inject: "false"
         | 
| 45 | 
            -
              #  | 
| 46 | 
            -
               | 
| 53 | 
            +
              # Leave "mysqlDatabase" commented out.
         | 
| 54 | 
            +
              # Specifying the db name causes our mysql chart to proactively create the database. This then
         | 
| 55 | 
            +
              # causes db:prepare to assume it needs to *run* all migrations, instead creating the db +
         | 
| 56 | 
            +
              # bootstrapping the schema from db/schema.rb. The latter is the correct way to set up a new DB.
         | 
| 57 | 
            +
              # mysqlDatabase: &mysqlDatabase "<%= Tpt::Rails.app_name %>"
         | 
| 58 | 
            +
              # mysqlRootPassword is read by our ODE mysql chart
         | 
| 59 | 
            +
              mysqlRootPassword: &mysqlRootPassword "123456"
         | 
| 47 60 | 
             
              persistence:
         | 
| 48 61 | 
             
                enabled: false
         | 
| 49 62 |  | 
| @@ -67,7 +80,7 @@ service: | |
| 67 80 | 
             
            ## Configure resource requests and limits
         | 
| 68 81 | 
             
            ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
         | 
| 69 82 | 
             
            ##
         | 
| 70 | 
            -
            resources:
         | 
| 83 | 
            +
            resources: &resources
         | 
| 71 84 | 
             
              # requests is guaranteed. kubernetes will only put your pod on a node where it can guarantee these
         | 
| 72 85 | 
             
              # amounts.
         | 
| 73 86 | 
             
              requests: &requests
         | 
| @@ -94,12 +107,13 @@ environment: | |
| 94 107 | 
             
              APP_NAME: <%= Tpt::Rails.app_name %>
         | 
| 95 108 | 
             
              APP_ENV: integration
         | 
| 96 109 | 
             
              DD_TRACE_DEBUG: '1'
         | 
| 97 | 
            -
              # DATABASE_URL is only used in ODEs
         | 
| 98 | 
            -
              DATABASE_URL: 'mysql2://root:{{ .Values.mysql.mysqlRootPassword }}@{{ template "<%= Tpt::Rails.app_name %>.fullname" . }}-mysql:3306/<%= Tpt::Rails.app_name %>_production'
         | 
| 99 110 | 
             
              RAILS_ENV: 'production'
         | 
| 100 111 | 
             
              RAILS_LOG_TO_STDOUT: '1'
         | 
| 101 112 | 
             
              RAILS_SERVE_STATIC_FILES: '1'
         | 
| 102 113 | 
             
              CLUSTER_SELECTOR: 'app={{ template "<%= Tpt::Rails.app_name %>.fullname" . }}'
         | 
| 114 | 
            +
              RACK_TIMEOUT_SERVICE_TIMEOUT: "20"
         | 
| 115 | 
            +
              RACK_TIMEOUT_TERM_ON_TIMEOUT: "1"
         | 
| 116 | 
            +
             | 
| 103 117 | 
             
              APP_ENV_NAME: |-
         | 
| 104 118 | 
             
                valueFrom:
         | 
| 105 119 | 
             
                  fieldRef:
         | 
| @@ -116,12 +130,24 @@ environment: | |
| 116 130 | 
             
                valueFrom:
         | 
| 117 131 | 
             
                  fieldRef:
         | 
| 118 132 | 
             
                    fieldPath: status.podIP
         | 
| 133 | 
            +
             | 
| 134 | 
            +
              DATABASE_HOST: '{{ template "<%= Tpt::Rails.app_name %>.fullname" . }}-mysql'
         | 
| 135 | 
            +
              DATABASE_REPLICA_HOST: '$(DATABASE_HOST)'
         | 
| 136 | 
            +
              DATABASE_NAME: '<%= Tpt::Rails.app_name %>'
         | 
| 137 | 
            +
              DATABASE_PASSWORD: *mysqlRootPassword
         | 
| 138 | 
            +
              DATABASE_USER: root
         | 
| 139 | 
            +
              # Using "DB" prefix here because kube env vars can only reference other env vars that come before
         | 
| 140 | 
            +
              # them alphabetically.
         | 
| 141 | 
            +
              DB_URL:         "mysql2://$(DATABASE_USER):$(DATABASE_PASSWORD)@$(DATABASE_HOST)/$(DATABASE_NAME)"
         | 
| 142 | 
            +
              DB_REPLICA_URL: "mysql2://$(DATABASE_USER):$(DATABASE_PASSWORD)@$(DATABASE_REPLICA_HOST)/$(DATABASE_NAME)"
         | 
| 143 | 
            +
             | 
| 119 144 | 
             
              DATADOG_TRACE_HOST: |-
         | 
| 120 145 | 
             
                valueFrom:
         | 
| 121 146 | 
             
                  fieldRef:
         | 
| 122 147 | 
             
                    fieldPath: status.hostIP
         | 
| 123 148 | 
             
              DATADOG_TRACE_PORT: "8126"
         | 
| 124 149 | 
             
              DATADOG_TRACE_URL: "datadog://$(DATADOG_TRACE_HOST):$(DATADOG_TRACE_PORT)"
         | 
| 150 | 
            +
             | 
| 125 151 | 
             
              DOGSTATSD_HOST: |-
         | 
| 126 152 | 
             
                valueFrom:
         | 
| 127 153 | 
             
                  fieldRef:
         | 
| @@ -135,11 +161,11 @@ copy-secrets: | |
| 135 161 | 
             
                - <%= config.fetch(:secrets_name) %>
         | 
| 136 162 |  | 
| 137 163 | 
             
            secrets:
         | 
| 138 | 
            -
              - name:  | 
| 164 | 
            +
              - name: SECRET_KEY_BASE
         | 
| 139 165 | 
             
                valueFrom:
         | 
| 140 166 | 
             
                  secretKeyRef:
         | 
| 141 167 | 
             
                    name: <%= config.fetch(:secrets_name) %>
         | 
| 142 | 
            -
                    key:  | 
| 168 | 
            +
                    key: <%= config.fetch(:secrets_key) %>
         | 
| 143 169 |  | 
| 144 170 | 
             
            # liveness: Whether the pod is up.
         | 
| 145 171 | 
             
            # After `initialDelaySeconds` if this is failing Kube will crash+restart the pod.
         | 
| @@ -170,3 +196,48 @@ autoscaler: | |
| 170 196 | 
             
              minimumPods: 1
         | 
| 171 197 | 
             
              maximumPods: 1
         | 
| 172 198 | 
             
              targetCPUUtilizationPercentage: 70 # no effect if minimumPods == maximumPods
         | 
| 199 | 
            +
             | 
| 200 | 
            +
            # Database migration support.
         | 
| 201 | 
            +
            db-migrate:
         | 
| 202 | 
            +
              enabled: false
         | 
| 203 | 
            +
              migration:
         | 
| 204 | 
            +
                command:
         | 
| 205 | 
            +
                  - bin/rails
         | 
| 206 | 
            +
                  - db:migrate
         | 
| 207 | 
            +
                image: *appImage
         | 
| 208 | 
            +
                env:
         | 
| 209 | 
            +
                  - name: APP_ENV
         | 
| 210 | 
            +
                    value: integration
         | 
| 211 | 
            +
                  - name: APP_NAME
         | 
| 212 | 
            +
                    value: <%= Tpt::Rails.app_name %>
         | 
| 213 | 
            +
                  # The db-migrate chart sets the following environment variables, which we can use to construct
         | 
| 214 | 
            +
                  # a Rails-friendly DB_URL.
         | 
| 215 | 
            +
                  # - PROXY_HOST
         | 
| 216 | 
            +
                  # - PROXY_PASSWORD
         | 
| 217 | 
            +
                  # - PROXY_USER
         | 
| 218 | 
            +
                  - name: DB_URL
         | 
| 219 | 
            +
                    value: "mysql2://$(PROXY_USER):$(PROXY_PASSWORD)@$(PROXY_HOST):3306/<%= Tpt::Rails.app_name %>"
         | 
| 220 | 
            +
                  # We don't override DB_MAX_EXECUTION_TIME here because it only applies to `select` queries and we
         | 
| 221 | 
            +
                  # plan to write migrations such that any `select` queries are fast.
         | 
| 222 | 
            +
                  # We specify the READ timeout because when testing that was the one that seemed to be used for
         | 
| 223 | 
            +
                  # `alter table` commands.
         | 
| 224 | 
            +
                  - name: DB_READ_TIMEOUT
         | 
| 225 | 
            +
                    value: "604800"
         | 
| 226 | 
            +
                  - name: DB_WRITE_TIMEOUT
         | 
| 227 | 
            +
                    value: "604800"
         | 
| 228 | 
            +
                  - name: RAILS_ENV
         | 
| 229 | 
            +
                    value: production
         | 
| 230 | 
            +
                  - name: SECRET_KEY_BASE
         | 
| 231 | 
            +
                    valueFrom:
         | 
| 232 | 
            +
                      secretKeyRef:
         | 
| 233 | 
            +
                        name: <%= config.fetch(:secrets_name) %>
         | 
| 234 | 
            +
                        key: <%= config.fetch(:secrets_key) %>
         | 
| 235 | 
            +
                resources: *resources
         | 
| 236 | 
            +
              proxy-osc:
         | 
| 237 | 
            +
                logLevel: debug
         | 
| 238 | 
            +
                target:
         | 
| 239 | 
            +
                  # When host is not set, proxy-osc defaults to [release-name]-mysql
         | 
| 240 | 
            +
                  # host:
         | 
| 241 | 
            +
                  user: root
         | 
| 242 | 
            +
                  password: *mysqlRootPassword
         | 
| 243 | 
            +
              schedule: "*/1 * * * *"
         | 
| 
            File without changes
         | 
| @@ -55,7 +55,7 @@ class Tpt::Rails::Internal::ErrorReporter # :nodoc: | |
| 55 55 |  | 
| 56 56 | 
             
              def configure_rollbar
         | 
| 57 57 | 
             
                # Ensure that rollbar has been added to the app's Gemfile
         | 
| 58 | 
            -
                gem 'rollbar', '>= 2.23.2', '<  | 
| 58 | 
            +
                gem 'rollbar', '>= 2.23.2', '< 4'
         | 
| 59 59 |  | 
| 60 60 | 
             
                Rollbar.configure do |config|
         | 
| 61 61 | 
             
                  config.access_token = @rollbar_access_token
         | 
    
        data/lib/tpt/rails/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tpt-rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.5.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - TpT
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021- | 
| 11 | 
            +
            date: 2021-05-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -16,20 +16,20 @@ dependencies: | |
| 16 16 | 
             
                requirements:
         | 
| 17 17 | 
             
                - - "~>"
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version:  | 
| 19 | 
            +
                    version: 6.1.3
         | 
| 20 20 | 
             
                - - ">="
         | 
| 21 21 | 
             
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            -
                    version: 6. | 
| 22 | 
            +
                    version: 6.1.3.2
         | 
| 23 23 | 
             
              type: :runtime
         | 
| 24 24 | 
             
              prerelease: false
         | 
| 25 25 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 26 26 | 
             
                requirements:
         | 
| 27 27 | 
             
                - - "~>"
         | 
| 28 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version:  | 
| 29 | 
            +
                    version: 6.1.3
         | 
| 30 30 | 
             
                - - ">="
         | 
| 31 31 | 
             
                  - !ruby/object:Gem::Version
         | 
| 32 | 
            -
                    version: 6. | 
| 32 | 
            +
                    version: 6.1.3.2
         | 
| 33 33 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 34 34 | 
             
              name: dogstatsd-ruby
         | 
| 35 35 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -91,34 +91,29 @@ files: | |
| 91 91 | 
             
            - app/models/tpt/rails/application_record.rb
         | 
| 92 92 | 
             
            - app/views/layouts/tpt/rails/application.html.erb
         | 
| 93 93 | 
             
            - config/routes.rb
         | 
| 94 | 
            -
            - lib/generators/ | 
| 95 | 
            -
            - lib/generators/ | 
| 96 | 
            -
            - lib/generators/ | 
| 97 | 
            -
            - lib/generators/ | 
| 98 | 
            -
            - lib/generators/ | 
| 99 | 
            -
            - lib/generators/ | 
| 100 | 
            -
            - lib/generators/ | 
| 101 | 
            -
            - lib/generators/ | 
| 102 | 
            -
            - lib/generators/ | 
| 103 | 
            -
            - lib/generators/ | 
| 104 | 
            -
            - lib/generators/ | 
| 105 | 
            -
            - lib/generators/ | 
| 106 | 
            -
            - lib/generators/ | 
| 107 | 
            -
            - lib/generators/ | 
| 108 | 
            -
            - lib/generators/ | 
| 109 | 
            -
            - lib/generators/ | 
| 110 | 
            -
            - lib/generators/ | 
| 111 | 
            -
            - lib/generators/ | 
| 112 | 
            -
            - lib/generators/ | 
| 113 | 
            -
            - lib/generators/ | 
| 114 | 
            -
            - lib/generators/ | 
| 115 | 
            -
            - lib/generators/ | 
| 116 | 
            -
            - lib/generators/ | 
| 117 | 
            -
            - lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/values.prod.yaml.tt
         | 
| 118 | 
            -
            - lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/values.staging.yaml.tt
         | 
| 119 | 
            -
            - lib/generators/tpt_rails/kubernetes/templates/kubernetes/helm/values.yaml.tt
         | 
| 120 | 
            -
            - lib/generators/tpt_rails/postman/postman.yaml.tt
         | 
| 121 | 
            -
            - lib/tasks/tpt/rails_tasks.rake
         | 
| 94 | 
            +
            - lib/generators/tpt/rails/configuration/configuration_generator.rb
         | 
| 95 | 
            +
            - lib/generators/tpt/rails/configuration/templates/config/initializers/tpt_rails.rb
         | 
| 96 | 
            +
            - lib/generators/tpt/rails/continuous_integration/continuous_integration_generator.rb
         | 
| 97 | 
            +
            - lib/generators/tpt/rails/continuous_integration/templates/ci/Dockerfile.tt
         | 
| 98 | 
            +
            - lib/generators/tpt/rails/continuous_integration/templates/ci/docker-compose.yaml.tt
         | 
| 99 | 
            +
            - lib/generators/tpt/rails/continuous_integration/templates/ci/tasks/project.test.unit.tt
         | 
| 100 | 
            +
            - lib/generators/tpt/rails/kubernetes/kubernetes_generator.rb
         | 
| 101 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/Dockerfile.tt
         | 
| 102 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/entrypoint.sh
         | 
| 103 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/Chart.yaml.tt
         | 
| 104 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/README.md
         | 
| 105 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/requirements.yaml.tt
         | 
| 106 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/templates/NOTES.txt.tt
         | 
| 107 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/templates/_env.yaml
         | 
| 108 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/templates/_helpers.tpl.tt
         | 
| 109 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/templates/autoscaler.yaml.tt
         | 
| 110 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/templates/deployment.yaml.tt
         | 
| 111 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/templates/hooks/db-prepare.yaml.tt
         | 
| 112 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/templates/service.yaml.tt
         | 
| 113 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/values.prod.yaml.tt
         | 
| 114 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/values.staging.yaml.tt
         | 
| 115 | 
            +
            - lib/generators/tpt/rails/kubernetes/templates/kubernetes/helm/values.yaml.tt
         | 
| 116 | 
            +
            - lib/generators/tpt/rails/postman/postman.yaml.tt
         | 
| 122 117 | 
             
            - lib/tpt/rails.rb
         | 
| 123 118 | 
             
            - lib/tpt/rails/config.rb
         | 
| 124 119 | 
             
            - lib/tpt/rails/engine.rb
         | 
| @@ -147,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 147 142 | 
             
                - !ruby/object:Gem::Version
         | 
| 148 143 | 
             
                  version: '0'
         | 
| 149 144 | 
             
            requirements: []
         | 
| 150 | 
            -
            rubygems_version: 3.1. | 
| 145 | 
            +
            rubygems_version: 3.1.6
         | 
| 151 146 | 
             
            signing_key:
         | 
| 152 147 | 
             
            specification_version: 4
         | 
| 153 148 | 
             
            summary: Utils for TpT Rails apps
         |