dbt-platform-helper 15.2.1__tar.gz → 15.3.0__tar.gz
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.
Potentially problematic release.
This version of dbt-platform-helper might be problematic. Click here for more details.
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/PKG-INFO +1 -1
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/constants.py +7 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/pipelines.py +34 -6
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/terraform_environment.py +21 -5
- dbt_platform_helper-15.3.0/dbt_platform_helper/providers/environment_variable.py +24 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/files.py +1 -1
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/io.py +8 -5
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/load_balancers.py +62 -34
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/terraform_manifest.py +20 -7
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/environment-pipelines/main.tf +1 -1
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/pyproject.toml +1 -1
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/LICENSE +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/COMMANDS.md +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/README.md +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/__init__.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/__init__.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/application.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/codebase.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/conduit.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/config.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/copilot.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/database.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/environment.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/generate.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/notify.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/pipeline.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/secrets.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/version.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/default-extensions.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/__init__.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/codebase.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/conduit.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/config.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/copilot.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/copilot_environment.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/database_copy.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/maintenance_page.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/notify.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/plans.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/versioning.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/entities/platform_config_schema.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/entities/semantic_version.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/jinja2_tags.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/platform_exception.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/__init__.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/aws/__init__.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/aws/exceptions.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/aws/interfaces.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/aws/opensearch.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/aws/redis.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/aws/sso_auth.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/cache.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/cloudformation.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/config.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/config_validator.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/copilot.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/ecr.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/ecs.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/kms.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/parameter_store.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/schema_migrations/__init__.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/schema_migrations/schema_v0_to_v1_migration.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/schema_migrator.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/secrets.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/slack_channel_notifier.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/validation.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/version.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/version_status.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/vpc.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/yaml_file.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/.copilot/config.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/.copilot/image_build_run.sh +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/.copilot/phases/build.sh +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/.copilot/phases/install.sh +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/.copilot/phases/post_build.sh +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/.copilot/phases/pre_build.sh +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/COMMANDS.md.jinja +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/addon-instructions.txt +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/addons/README.md +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/addons/svc/appconfig-ipfilter.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/addons/svc/prometheus-policy.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/addons/svc/s3-cross-account-policy.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/addons/svc/s3-policy.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/addons/svc/subscription-filter.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/ci-codebuild-role-policy.json +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/create-codebuild-role.json +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/custom-codebuild-role-policy.json +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/env/manifest.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/env/terraform-overrides/cfn.patches.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/svc/maintenance_pages/default.html +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/svc/maintenance_pages/dmas-migration.html +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/svc/maintenance_pages/migration.html +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/templates/svc/overrides/cfn.patches.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utilities/decorators.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/__init__.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/application.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/arn_parser.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/aws.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/click.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/git.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/messages.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/template.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/validation.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/platform_helper.py +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/terraform/elasticache-redis/plans.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/terraform/opensearch/plans.yml +0 -0
- {dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/terraform/postgres/plans.yml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dbt-platform-helper
|
|
3
|
-
Version: 15.
|
|
3
|
+
Version: 15.3.0
|
|
4
4
|
Summary: Set of tools to help transfer applications/services from GOV.UK PaaS to DBT PaaS augmenting AWS Copilot.
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Department for Business and Trade Platform Team
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
# TODO: DBTP-1888: Move to Config provider
|
|
2
2
|
PLATFORM_CONFIG_FILE = "platform-config.yml"
|
|
3
3
|
PLATFORM_HELPER_VERSION_OVERRIDE_KEY = "PLATFORM_HELPER_VERSION_OVERRIDE"
|
|
4
|
+
TERRAFORM_EXTENSIONS_MODULE_SOURCE_OVERRIDE_ENV_VAR = "TERRAFORM_EXTENSIONS_MODULE_SOURCE_OVERRIDE"
|
|
5
|
+
TERRAFORM_ENVIRONMENT_PIPELINES_MODULE_SOURCE_OVERRIDE_ENV_VAR = (
|
|
6
|
+
"TERRAFORM_ENVIRONMENT_PIPELINES_MODULE_SOURCE_OVERRIDE"
|
|
7
|
+
)
|
|
8
|
+
TERRAFORM_CODEBASE_PIPELINES_MODULE_SOURCE_OVERRIDE_ENV_VAR = (
|
|
9
|
+
"TERRAFORM_CODEBASE_PIPELINES_MODULE_SOURCE_OVERRIDE"
|
|
10
|
+
)
|
|
4
11
|
PLATFORM_HELPER_PACKAGE_NAME = "dbt-platform-helper"
|
|
5
12
|
SUPPORTED_TERRAFORM_VERSION = "~> 1.8"
|
|
6
13
|
SUPPORTED_AWS_PROVIDER_VERSION = "~> 5"
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/pipelines.py
RENAMED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import os
|
|
2
1
|
from collections.abc import Callable
|
|
3
2
|
from os import makedirs
|
|
4
3
|
from pathlib import Path
|
|
@@ -9,8 +8,17 @@ from dbt_platform_helper.constants import ENVIRONMENT_PIPELINES_KEY
|
|
|
9
8
|
from dbt_platform_helper.constants import PLATFORM_HELPER_VERSION_OVERRIDE_KEY
|
|
10
9
|
from dbt_platform_helper.constants import SUPPORTED_AWS_PROVIDER_VERSION
|
|
11
10
|
from dbt_platform_helper.constants import SUPPORTED_TERRAFORM_VERSION
|
|
11
|
+
from dbt_platform_helper.constants import (
|
|
12
|
+
TERRAFORM_CODEBASE_PIPELINES_MODULE_SOURCE_OVERRIDE_ENV_VAR,
|
|
13
|
+
)
|
|
14
|
+
from dbt_platform_helper.constants import (
|
|
15
|
+
TERRAFORM_ENVIRONMENT_PIPELINES_MODULE_SOURCE_OVERRIDE_ENV_VAR,
|
|
16
|
+
)
|
|
12
17
|
from dbt_platform_helper.providers.config import ConfigProvider
|
|
13
18
|
from dbt_platform_helper.providers.ecr import ECRProvider
|
|
19
|
+
from dbt_platform_helper.providers.environment_variable import (
|
|
20
|
+
EnvironmentVariableProvider,
|
|
21
|
+
)
|
|
14
22
|
from dbt_platform_helper.providers.files import FileProvider
|
|
15
23
|
from dbt_platform_helper.providers.io import ClickIOProvider
|
|
16
24
|
from dbt_platform_helper.providers.terraform_manifest import TerraformManifestProvider
|
|
@@ -28,6 +36,7 @@ class Pipelines:
|
|
|
28
36
|
get_codestar_arn: Callable[[str], str],
|
|
29
37
|
io: ClickIOProvider = ClickIOProvider(),
|
|
30
38
|
file_provider: FileProvider = FileProvider(),
|
|
39
|
+
environment_variable_provider: EnvironmentVariableProvider = None,
|
|
31
40
|
platform_helper_version_override: str = None,
|
|
32
41
|
):
|
|
33
42
|
self.config_provider = config_provider
|
|
@@ -37,8 +46,12 @@ class Pipelines:
|
|
|
37
46
|
self.ecr_provider = ecr_provider
|
|
38
47
|
self.io = io
|
|
39
48
|
self.file_provider = file_provider
|
|
40
|
-
self.
|
|
41
|
-
|
|
49
|
+
self.environment_variable_provider = (
|
|
50
|
+
environment_variable_provider or EnvironmentVariableProvider()
|
|
51
|
+
)
|
|
52
|
+
self.platform_helper_version_override = (
|
|
53
|
+
platform_helper_version_override
|
|
54
|
+
or self.environment_variable_provider.get(PLATFORM_HELPER_VERSION_OVERRIDE_KEY)
|
|
42
55
|
)
|
|
43
56
|
|
|
44
57
|
def generate(
|
|
@@ -86,6 +99,13 @@ class Pipelines:
|
|
|
86
99
|
)
|
|
87
100
|
deploy_repository = f"uktrade/{platform_config['application']}-deploy"
|
|
88
101
|
|
|
102
|
+
env_pipeline_module_source = (
|
|
103
|
+
self.environment_variable_provider.get(
|
|
104
|
+
TERRAFORM_ENVIRONMENT_PIPELINES_MODULE_SOURCE_OVERRIDE_ENV_VAR
|
|
105
|
+
)
|
|
106
|
+
or f"git::git@github.com:uktrade/platform-tools.git//terraform/environment-pipelines?depth=1&ref={platform_helper_version_for_template}"
|
|
107
|
+
)
|
|
108
|
+
|
|
89
109
|
if has_environment_pipelines:
|
|
90
110
|
environment_pipelines = platform_config[ENVIRONMENT_PIPELINES_KEY]
|
|
91
111
|
accounts = {
|
|
@@ -99,7 +119,7 @@ class Pipelines:
|
|
|
99
119
|
platform_config["application"],
|
|
100
120
|
deploy_repository,
|
|
101
121
|
account,
|
|
102
|
-
|
|
122
|
+
env_pipeline_module_source,
|
|
103
123
|
deploy_branch,
|
|
104
124
|
)
|
|
105
125
|
|
|
@@ -116,11 +136,19 @@ class Pipelines:
|
|
|
116
136
|
if repo in ecrs_already_provisioned
|
|
117
137
|
}
|
|
118
138
|
|
|
139
|
+
codebase_pipeline_module_source = (
|
|
140
|
+
self.environment_variable_provider.get(
|
|
141
|
+
TERRAFORM_CODEBASE_PIPELINES_MODULE_SOURCE_OVERRIDE_ENV_VAR
|
|
142
|
+
)
|
|
143
|
+
or f"git::git@github.com:uktrade/platform-tools.git//terraform/codebase-pipelines?depth=1&ref={platform_helper_version_for_template}"
|
|
144
|
+
)
|
|
145
|
+
|
|
119
146
|
self.terraform_manifest_provider.generate_codebase_pipeline_config(
|
|
120
147
|
platform_config,
|
|
121
148
|
platform_helper_version_for_template,
|
|
122
149
|
ecrs_that_need_importing,
|
|
123
150
|
deploy_repository,
|
|
151
|
+
codebase_pipeline_module_source,
|
|
124
152
|
)
|
|
125
153
|
|
|
126
154
|
def _clean_pipeline_config(self, pipelines_dir: Path):
|
|
@@ -133,7 +161,7 @@ class Pipelines:
|
|
|
133
161
|
application: str,
|
|
134
162
|
deploy_repository: str,
|
|
135
163
|
aws_account: str,
|
|
136
|
-
|
|
164
|
+
module_source: str,
|
|
137
165
|
deploy_branch: str,
|
|
138
166
|
):
|
|
139
167
|
env_pipeline_template = setup_templates().get_template("environment-pipelines/main.tf")
|
|
@@ -143,7 +171,7 @@ class Pipelines:
|
|
|
143
171
|
"application": application,
|
|
144
172
|
"deploy_repository": deploy_repository,
|
|
145
173
|
"aws_account": aws_account,
|
|
146
|
-
"
|
|
174
|
+
"module_source": module_source,
|
|
147
175
|
"deploy_branch": deploy_branch,
|
|
148
176
|
"terraform_version": SUPPORTED_TERRAFORM_VERSION,
|
|
149
177
|
"aws_provider_version": SUPPORTED_AWS_PROVIDER_VERSION,
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import os
|
|
2
|
-
|
|
3
1
|
from dbt_platform_helper.constants import PLATFORM_HELPER_VERSION_OVERRIDE_KEY
|
|
2
|
+
from dbt_platform_helper.constants import (
|
|
3
|
+
TERRAFORM_EXTENSIONS_MODULE_SOURCE_OVERRIDE_ENV_VAR,
|
|
4
|
+
)
|
|
4
5
|
from dbt_platform_helper.platform_exception import PlatformException
|
|
6
|
+
from dbt_platform_helper.providers.environment_variable import (
|
|
7
|
+
EnvironmentVariableProvider,
|
|
8
|
+
)
|
|
5
9
|
from dbt_platform_helper.providers.io import ClickIOProvider
|
|
6
10
|
from dbt_platform_helper.providers.terraform_manifest import TerraformManifestProvider
|
|
7
11
|
|
|
@@ -19,14 +23,19 @@ class TerraformEnvironment:
|
|
|
19
23
|
self,
|
|
20
24
|
config_provider,
|
|
21
25
|
manifest_provider: TerraformManifestProvider = None,
|
|
26
|
+
environment_variable_provider: EnvironmentVariableProvider = None,
|
|
22
27
|
io: ClickIOProvider = ClickIOProvider(),
|
|
23
28
|
platform_helper_version_override: str = None,
|
|
24
29
|
):
|
|
25
30
|
self.io = io
|
|
26
31
|
self.config_provider = config_provider
|
|
27
32
|
self.manifest_provider = manifest_provider or TerraformManifestProvider()
|
|
28
|
-
self.
|
|
29
|
-
|
|
33
|
+
self.environment_variable_provider = (
|
|
34
|
+
environment_variable_provider or EnvironmentVariableProvider()
|
|
35
|
+
)
|
|
36
|
+
self.platform_helper_version_override = (
|
|
37
|
+
platform_helper_version_override
|
|
38
|
+
or self.environment_variable_provider.get(PLATFORM_HELPER_VERSION_OVERRIDE_KEY)
|
|
30
39
|
)
|
|
31
40
|
|
|
32
41
|
def generate(
|
|
@@ -48,6 +57,13 @@ class TerraformEnvironment:
|
|
|
48
57
|
if self.platform_helper_version_override:
|
|
49
58
|
platform_helper_version_for_template = self.platform_helper_version_override
|
|
50
59
|
|
|
60
|
+
module_source_override = self.environment_variable_provider.get(
|
|
61
|
+
TERRAFORM_EXTENSIONS_MODULE_SOURCE_OVERRIDE_ENV_VAR
|
|
62
|
+
)
|
|
63
|
+
|
|
51
64
|
self.manifest_provider.generate_environment_config(
|
|
52
|
-
config,
|
|
65
|
+
config,
|
|
66
|
+
environment_name,
|
|
67
|
+
platform_helper_version_for_template,
|
|
68
|
+
module_source_override,
|
|
53
69
|
)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
from dbt_platform_helper.platform_exception import PlatformException
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class EnvironmentVariableProvider:
|
|
8
|
+
|
|
9
|
+
@staticmethod
|
|
10
|
+
def get(env_var: str) -> Optional[str]:
|
|
11
|
+
"""Returns the stripped value or None if not set or empty."""
|
|
12
|
+
value = os.environ.get(env_var)
|
|
13
|
+
if value and value.strip():
|
|
14
|
+
return value.strip()
|
|
15
|
+
return None
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def get_required(env_var: str) -> str:
|
|
19
|
+
"""Returns the stripped value or raises a PlatformException if not set
|
|
20
|
+
or empty."""
|
|
21
|
+
value = os.environ.get(env_var)
|
|
22
|
+
if not value or not value.strip():
|
|
23
|
+
raise PlatformException(f"Environment variable '{env_var}' is not set or is empty")
|
|
24
|
+
return value.strip()
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/files.py
RENAMED
|
@@ -17,7 +17,7 @@ class FileProvider:
|
|
|
17
17
|
file_path.write_text(contents)
|
|
18
18
|
|
|
19
19
|
action = "overwritten" if file_exists and overwrite else "created"
|
|
20
|
-
return f"File {
|
|
20
|
+
return f"File {file_path} {action}"
|
|
21
21
|
|
|
22
22
|
@staticmethod
|
|
23
23
|
def delete_file(base_path: str, file_name: str):
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/io.py
RENAMED
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
import os
|
|
2
|
-
|
|
3
1
|
import click
|
|
4
2
|
|
|
5
3
|
from dbt_platform_helper.platform_exception import PlatformException
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
from dbt_platform_helper.providers.environment_variable import (
|
|
5
|
+
EnvironmentVariableProvider,
|
|
6
|
+
)
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
class ClickIOProvider:
|
|
10
|
+
def __init__(self, env_var_provider=EnvironmentVariableProvider()):
|
|
11
|
+
self.env_var_provider = env_var_provider
|
|
12
|
+
self.debug_flag = self.env_var_provider.get("DEBUG")
|
|
13
|
+
|
|
11
14
|
def warn(self, message: str):
|
|
12
15
|
click.secho(message, fg="magenta")
|
|
13
16
|
|
|
14
17
|
def debug(self, message: str):
|
|
15
|
-
if
|
|
18
|
+
if self.debug_flag and self.debug_flag.strip().upper() == "TRUE":
|
|
16
19
|
click.secho(message, fg="green")
|
|
17
20
|
|
|
18
21
|
def error(self, message: str):
|
|
@@ -28,7 +28,8 @@ class LoadBalancerProvider:
|
|
|
28
28
|
def find_target_group(self, app: str, env: str, svc: str) -> str:
|
|
29
29
|
target_group_arn = None
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
paginator = self.rg_tagging_client.get_paginator("get_resources")
|
|
32
|
+
page_iterator = paginator.paginate(
|
|
32
33
|
TagFilters=[
|
|
33
34
|
{
|
|
34
35
|
"Key": "copilot-application",
|
|
@@ -48,19 +49,18 @@ class LoadBalancerProvider:
|
|
|
48
49
|
ResourceTypeFilters=[
|
|
49
50
|
"elasticloadbalancing:targetgroup",
|
|
50
51
|
],
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
target_group_arn = resource["ResourceARN"]
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
for page in page_iterator:
|
|
55
|
+
for resource in page["ResourceTagMappingList"]:
|
|
56
|
+
tags = {tag["Key"]: tag["Value"] for tag in resource["Tags"]}
|
|
57
|
+
|
|
58
|
+
if (
|
|
59
|
+
tags.get("copilot-service") == svc
|
|
60
|
+
and tags.get("copilot-environment") == env
|
|
61
|
+
and tags.get("copilot-application") == app
|
|
62
|
+
):
|
|
63
|
+
target_group_arn = resource["ResourceARN"]
|
|
64
64
|
|
|
65
65
|
if not target_group_arn:
|
|
66
66
|
self.io.error(
|
|
@@ -69,11 +69,12 @@ class LoadBalancerProvider:
|
|
|
69
69
|
|
|
70
70
|
return target_group_arn
|
|
71
71
|
|
|
72
|
-
def
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
def get_https_certificate_for_listener(self, listener_arn: str, env: str):
|
|
73
|
+
certificates = []
|
|
74
|
+
paginator = self.evlb_client.get_paginator("describe_listener_certificates")
|
|
75
|
+
page_iterator = paginator.paginate(ListenerArn=listener_arn)
|
|
76
|
+
for page in page_iterator:
|
|
77
|
+
certificates.extend(page["Certificates"])
|
|
77
78
|
|
|
78
79
|
try:
|
|
79
80
|
certificate_arn = next(c["CertificateArn"] for c in certificates if c["IsDefault"])
|
|
@@ -82,12 +83,22 @@ class LoadBalancerProvider:
|
|
|
82
83
|
|
|
83
84
|
return certificate_arn
|
|
84
85
|
|
|
86
|
+
def get_https_certificate_for_application(self, app: str, env: str) -> str:
|
|
87
|
+
listener_arn = self.get_https_listener_for_application(app, env)
|
|
88
|
+
return self.get_https_certificate_for_listener(listener_arn, env)
|
|
89
|
+
|
|
90
|
+
def get_listeners_for_load_balancer(self, load_balancer_arn):
|
|
91
|
+
listeners = []
|
|
92
|
+
paginator = self.evlb_client.get_paginator("describe_listeners")
|
|
93
|
+
page_iterator = paginator.paginate(LoadBalancerArn=load_balancer_arn)
|
|
94
|
+
for page in page_iterator:
|
|
95
|
+
listeners.extend(page["Listeners"])
|
|
96
|
+
|
|
97
|
+
return listeners
|
|
98
|
+
|
|
85
99
|
def get_https_listener_for_application(self, app: str, env: str) -> str:
|
|
86
100
|
load_balancer_arn = self.get_load_balancer_for_application(app, env)
|
|
87
|
-
|
|
88
|
-
listeners = self.evlb_client.describe_listeners(LoadBalancerArn=load_balancer_arn)[
|
|
89
|
-
"Listeners"
|
|
90
|
-
] # TODO: DBTP-1942: should be paginated
|
|
101
|
+
listeners = self.get_listeners_for_load_balancer(load_balancer_arn)
|
|
91
102
|
|
|
92
103
|
listener_arn = None
|
|
93
104
|
|
|
@@ -101,16 +112,23 @@ class LoadBalancerProvider:
|
|
|
101
112
|
|
|
102
113
|
return listener_arn
|
|
103
114
|
|
|
104
|
-
def
|
|
105
|
-
|
|
106
|
-
|
|
115
|
+
def get_load_balancers(self):
|
|
116
|
+
load_balancers = []
|
|
117
|
+
paginator = self.evlb_client.get_paginator("describe_load_balancers")
|
|
118
|
+
page_iterator = paginator.paginate()
|
|
119
|
+
for page in page_iterator:
|
|
120
|
+
load_balancers.extend(lb["LoadBalancerArn"] for lb in page["LoadBalancers"])
|
|
107
121
|
|
|
122
|
+
return load_balancers
|
|
123
|
+
|
|
124
|
+
def get_load_balancer_for_application(self, app: str, env: str) -> str:
|
|
125
|
+
load_balancers = self.get_load_balancers()
|
|
108
126
|
tag_descriptions = []
|
|
109
127
|
for i in range(0, len(load_balancers), 20):
|
|
110
128
|
chunk = load_balancers[i : i + 20]
|
|
111
129
|
tag_descriptions.extend(
|
|
112
130
|
self.evlb_client.describe_tags(ResourceArns=chunk)["TagDescriptions"]
|
|
113
|
-
)
|
|
131
|
+
) # describe_tags cannot be paginated - 04/04/2025
|
|
114
132
|
|
|
115
133
|
for lb in tag_descriptions:
|
|
116
134
|
tags = {t["Key"]: t["Value"] for t in lb["Tags"]}
|
|
@@ -121,9 +139,11 @@ class LoadBalancerProvider:
|
|
|
121
139
|
raise LoadBalancerNotFoundException(app, env)
|
|
122
140
|
|
|
123
141
|
def get_host_header_conditions(self, listener_arn: str, target_group_arn: str) -> list:
|
|
124
|
-
rules =
|
|
125
|
-
|
|
126
|
-
|
|
142
|
+
rules = []
|
|
143
|
+
paginator = self.evlb_client.get_paginator("describe_rules")
|
|
144
|
+
page_iterator = paginator.paginate(ListenerArn=listener_arn)
|
|
145
|
+
for page in page_iterator:
|
|
146
|
+
rules.extend(page["Rules"])
|
|
127
147
|
|
|
128
148
|
conditions = []
|
|
129
149
|
|
|
@@ -150,11 +170,19 @@ class LoadBalancerProvider:
|
|
|
150
170
|
return conditions
|
|
151
171
|
|
|
152
172
|
def get_rules_tag_descriptions_by_listener_arn(self, listener_arn: str) -> list:
|
|
153
|
-
rules = self.
|
|
154
|
-
|
|
155
|
-
] # TODO: DBTP-1942: should be paginated
|
|
173
|
+
rules = self.get_listener_rules_by_listener_arn(listener_arn)
|
|
174
|
+
|
|
156
175
|
return self.get_rules_tag_descriptions(rules)
|
|
157
176
|
|
|
177
|
+
def get_listener_rules_by_listener_arn(self, listener_arn: str) -> list:
|
|
178
|
+
rules = []
|
|
179
|
+
paginator = self.evlb_client.get_paginator("describe_rules")
|
|
180
|
+
page_iterator = paginator.paginate(ListenerArn=listener_arn)
|
|
181
|
+
for page in page_iterator:
|
|
182
|
+
rules.extend(page["Rules"])
|
|
183
|
+
|
|
184
|
+
return rules
|
|
185
|
+
|
|
158
186
|
def get_rules_tag_descriptions(self, rules: list) -> list:
|
|
159
187
|
tag_descriptions = []
|
|
160
188
|
chunk_size = 20
|
|
@@ -164,7 +192,7 @@ class LoadBalancerProvider:
|
|
|
164
192
|
resource_arns = [r["RuleArn"] for r in chunk]
|
|
165
193
|
response = self.evlb_client.describe_tags(
|
|
166
194
|
ResourceArns=resource_arns
|
|
167
|
-
) #
|
|
195
|
+
) # describe_tags cannot be paginated - 04/04/2025
|
|
168
196
|
tag_descriptions.extend(response["TagDescriptions"])
|
|
169
197
|
|
|
170
198
|
return tag_descriptions
|
|
@@ -23,6 +23,7 @@ class TerraformManifestProvider:
|
|
|
23
23
|
platform_helper_version: str,
|
|
24
24
|
ecr_imports: dict[str, str],
|
|
25
25
|
deploy_repository: str,
|
|
26
|
+
module_source: str,
|
|
26
27
|
):
|
|
27
28
|
default_account = self._get_account_for_env("*", platform_config)
|
|
28
29
|
state_key_suffix = f"{platform_config['application']}-codebase-pipelines"
|
|
@@ -32,7 +33,9 @@ class TerraformManifestProvider:
|
|
|
32
33
|
self._add_codebase_pipeline_locals(terraform)
|
|
33
34
|
self._add_provider(terraform, default_account)
|
|
34
35
|
self._add_backend(terraform, platform_config, default_account, state_key_suffix)
|
|
35
|
-
self._add_codebase_pipeline_module(
|
|
36
|
+
self._add_codebase_pipeline_module(
|
|
37
|
+
terraform, platform_helper_version, deploy_repository, module_source
|
|
38
|
+
)
|
|
36
39
|
self._add_imports(terraform, ecr_imports)
|
|
37
40
|
self._write_terraform_json(terraform, "terraform/codebase-pipelines")
|
|
38
41
|
|
|
@@ -41,6 +44,7 @@ class TerraformManifestProvider:
|
|
|
41
44
|
platform_config: dict,
|
|
42
45
|
env: str,
|
|
43
46
|
platform_helper_version: str,
|
|
47
|
+
module_source_override: str = None,
|
|
44
48
|
):
|
|
45
49
|
platform_config = ConfigProvider.apply_environment_defaults(platform_config)
|
|
46
50
|
account = self._get_account_for_env(env, platform_config)
|
|
@@ -53,7 +57,7 @@ class TerraformManifestProvider:
|
|
|
53
57
|
self._add_header(terraform)
|
|
54
58
|
self._add_environment_locals(terraform, application_name)
|
|
55
59
|
self._add_backend(terraform, platform_config, account, state_key_suffix)
|
|
56
|
-
self._add_extensions_module(terraform, platform_helper_version, env)
|
|
60
|
+
self._add_extensions_module(terraform, platform_helper_version, env, module_source_override)
|
|
57
61
|
self._add_moved(terraform, platform_config)
|
|
58
62
|
self._ensure_no_hcl_manifest_file(env_dir)
|
|
59
63
|
self._write_terraform_json(terraform, env_dir)
|
|
@@ -115,9 +119,12 @@ class TerraformManifestProvider:
|
|
|
115
119
|
|
|
116
120
|
@staticmethod
|
|
117
121
|
def _add_codebase_pipeline_module(
|
|
118
|
-
terraform: dict,
|
|
122
|
+
terraform: dict,
|
|
123
|
+
platform_helper_version: str,
|
|
124
|
+
deploy_repository: str,
|
|
125
|
+
module_source: str,
|
|
119
126
|
):
|
|
120
|
-
source =
|
|
127
|
+
source = module_source
|
|
121
128
|
terraform["module"] = {
|
|
122
129
|
"codebase-pipelines": {
|
|
123
130
|
"source": source,
|
|
@@ -133,12 +140,18 @@ class TerraformManifestProvider:
|
|
|
133
140
|
"requires_image_build": '${lookup(each.value, "requires_image_build", true)}',
|
|
134
141
|
"slack_channel": '${lookup(each.value, "slack_channel", "/codebuild/slack_oauth_channel")}',
|
|
135
142
|
"env_config": "${local.environments}",
|
|
143
|
+
"platform_tools_version": f"{platform_helper_version}",
|
|
136
144
|
}
|
|
137
145
|
}
|
|
138
146
|
|
|
139
147
|
@staticmethod
|
|
140
|
-
def _add_extensions_module(
|
|
141
|
-
|
|
148
|
+
def _add_extensions_module(
|
|
149
|
+
terraform: dict, platform_helper_version: str, env: str, module_source_override: str = None
|
|
150
|
+
):
|
|
151
|
+
source = (
|
|
152
|
+
module_source_override
|
|
153
|
+
or f"git::git@github.com:uktrade/platform-tools.git//terraform/extensions?depth=1&ref={platform_helper_version}"
|
|
154
|
+
)
|
|
142
155
|
terraform["module"] = {
|
|
143
156
|
"extensions": {
|
|
144
157
|
"source": source,
|
|
@@ -209,7 +222,7 @@ class TerraformManifestProvider:
|
|
|
209
222
|
|
|
210
223
|
def _write_terraform_json(self, terraform: dict, env_dir: str):
|
|
211
224
|
message = self.file_provider.mkfile(
|
|
212
|
-
str(Path(env_dir)
|
|
225
|
+
str(Path(env_dir)),
|
|
213
226
|
"main.tf.json",
|
|
214
227
|
json.dumps(terraform, indent=2),
|
|
215
228
|
True,
|
|
@@ -34,7 +34,7 @@ terraform {
|
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
module "environment-pipelines" {
|
|
37
|
-
source = "
|
|
37
|
+
source = "{{ module_source }}"
|
|
38
38
|
|
|
39
39
|
for_each = local.pipelines
|
|
40
40
|
|
|
@@ -3,7 +3,7 @@ line-length = 100
|
|
|
3
3
|
|
|
4
4
|
[tool.poetry]
|
|
5
5
|
name = "dbt-platform-helper"
|
|
6
|
-
version = "15.
|
|
6
|
+
version = "15.3.0"
|
|
7
7
|
description = "Set of tools to help transfer applications/services from GOV.UK PaaS to DBT PaaS augmenting AWS Copilot."
|
|
8
8
|
authors = ["Department for Business and Trade Platform Team <sre-team@digital.trade.gov.uk>"]
|
|
9
9
|
license = "MIT"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/codebase.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/conduit.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/config.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/copilot.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/database.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/generate.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/notify.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/pipeline.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/secrets.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/commands/version.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/default-extensions.yml
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/__init__.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/codebase.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/conduit.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/config.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/copilot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/notify.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/plans.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/domain/versioning.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/jinja2_tags.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/platform_exception.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/aws/redis.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/cache.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/config.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/copilot.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/ecr.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/ecs.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/kms.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/secrets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/version.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/vpc.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/providers/yaml_file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/__init__.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/application.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/arn_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/click.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/messages.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/template.py
RENAMED
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/dbt_platform_helper/utils/validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_platform_helper-15.2.1 → dbt_platform_helper-15.3.0}/terraform/elasticache-redis/plans.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|