dbt-platform-helper 10.8.1__tar.gz → 10.9.1__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.

Files changed (101) hide show
  1. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/PKG-INFO +1 -1
  2. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/environment.py +33 -11
  3. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/validation.py +33 -0
  4. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/pyproject.toml +1 -1
  5. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/LICENSE +0 -0
  6. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/COMMANDS.md +0 -0
  7. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/README.md +0 -0
  8. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/__init__.py +0 -0
  9. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/addon-plans.yml +0 -0
  10. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/addons-template-map.yml +0 -0
  11. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/__init__.py +0 -0
  12. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/application.py +0 -0
  13. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/check_cloudformation.py +0 -0
  14. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/codebase.py +0 -0
  15. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/conduit.py +0 -0
  16. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/config.py +0 -0
  17. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/copilot.py +0 -0
  18. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/database.py +0 -0
  19. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/dns.py +0 -0
  20. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/generate.py +0 -0
  21. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/notify.py +0 -0
  22. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/pipeline.py +0 -0
  23. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/secrets.py +0 -0
  24. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/commands/version.py +0 -0
  25. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/constants.py +0 -0
  26. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/custom_resources/__init__.py +0 -0
  27. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/custom_resources/s3_object.py +0 -0
  28. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/default-extensions.yml +0 -0
  29. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/exceptions.py +0 -0
  30. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/jinja2_tags.py +0 -0
  31. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/.copilot/config.yml +0 -0
  32. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/.copilot/image_build_run.sh +0 -0
  33. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/.copilot/phases/build.sh +0 -0
  34. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/.copilot/phases/install.sh +0 -0
  35. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/.copilot/phases/post_build.sh +0 -0
  36. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/.copilot/phases/pre_build.sh +0 -0
  37. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/COMMANDS.md.jinja +0 -0
  38. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addon-instructions.txt +0 -0
  39. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/README.md +0 -0
  40. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/addons.parameters.yml +0 -0
  41. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/aurora-postgres.yml +0 -0
  42. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/monitoring.yml +0 -0
  43. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/opensearch.yml +0 -0
  44. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/rds-postgres.yml +0 -0
  45. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/redis-cluster.yml +0 -0
  46. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/s3.yml +0 -0
  47. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/env/vpc.yml +0 -0
  48. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/svc/appconfig-ipfilter.yml +0 -0
  49. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/svc/prometheus-policy.yml +0 -0
  50. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/svc/s3-policy.yml +0 -0
  51. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/addons/svc/subscription-filter.yml +0 -0
  52. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/ci-codebuild-role-policy.json +0 -0
  53. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/create-codebuild-role.json +0 -0
  54. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/custom-codebuild-role-policy.json +0 -0
  55. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/manifest.yml +0 -0
  56. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/.gitignore +0 -0
  57. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/README.md +0 -0
  58. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/bin/override.ts +0 -0
  59. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/cdk.json +0 -0
  60. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/log_resource_policy.json +0 -0
  61. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/package-lock.json +0 -0
  62. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/package.json +0 -0
  63. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/stack.ts +0 -0
  64. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/overrides/tsconfig.json +0 -0
  65. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/env/terraform-overrides/cfn.patches.yml +0 -0
  66. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/environments/main.tf +0 -0
  67. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/manifest.yml +0 -0
  68. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/.gitignore +0 -0
  69. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/bin/override.ts +0 -0
  70. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/buildspec.deploy.yml +0 -0
  71. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/buildspec.image.yml +0 -0
  72. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/cdk.json +0 -0
  73. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/package-lock.json +0 -0
  74. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/package.json +0 -0
  75. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/stack.ts +0 -0
  76. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/tsconfig.json +0 -0
  77. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/codebase/overrides/types.ts +0 -0
  78. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/environments/buildspec.yml +0 -0
  79. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/environments/manifest.yml +0 -0
  80. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/pipelines/environments/overrides/cfn.patches.yml +0 -0
  81. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/svc/maintenance_pages/default.html +0 -0
  82. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/svc/maintenance_pages/dmas-migration.html +0 -0
  83. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/svc/maintenance_pages/migration.html +0 -0
  84. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/svc/manifest-backend.yml +0 -0
  85. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/svc/manifest-public.yml +0 -0
  86. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/templates/svc/overrides/cfn.patches.yml +0 -0
  87. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/__init__.py +0 -0
  88. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/application.py +0 -0
  89. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/arn_parser.py +0 -0
  90. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/aws.py +0 -0
  91. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/click.py +0 -0
  92. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/cloudformation.py +0 -0
  93. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/cloudfoundry.py +0 -0
  94. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/files.py +0 -0
  95. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/git.py +0 -0
  96. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/manifests.py +0 -0
  97. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/messages.py +0 -0
  98. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/platform_config.py +0 -0
  99. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/template.py +0 -0
  100. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/dbt_platform_helper/utils/versioning.py +0 -0
  101. {dbt_platform_helper-10.8.1 → dbt_platform_helper-10.9.1}/platform_helper.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dbt-platform-helper
3
- Version: 10.8.1
3
+ Version: 10.9.1
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
@@ -238,15 +238,16 @@ def get_subnet_ids(session, vpc_id):
238
238
  return public, private
239
239
 
240
240
 
241
- def get_cert_arn(session, env_name):
242
- certs = session.client("acm").list_certificates()["CertificateSummaryList"]
243
-
244
- for cert in certs:
245
- if env_name in cert["DomainName"]:
246
- return cert["CertificateArn"]
241
+ def get_cert_arn(session, application, env_name):
242
+ try:
243
+ arn = find_https_certificate(session, application, env_name)
244
+ except:
245
+ click.secho(
246
+ f"No certificate found with domain name matching environment {env_name}.", fg="red"
247
+ )
248
+ raise click.Abort
247
249
 
248
- click.secho(f"No certificate found with domain name matching environment {env_name}.", fg="red")
249
- raise click.Abort
250
+ return arn
250
251
 
251
252
 
252
253
  def get_env_ips(vpc: str, application_environment: Environment):
@@ -284,7 +285,7 @@ def generate(name, vpc_name):
284
285
 
285
286
  env_config = apply_environment_defaults(conf)["environments"][name]
286
287
 
287
- _generate_copilot_environment_manifests(name, env_config, session)
288
+ _generate_copilot_environment_manifests(name, conf["application"], env_config, session)
288
289
 
289
290
 
290
291
  @environment.command(help="Generate terraform manifest for the specified environment.")
@@ -308,12 +309,12 @@ def generate_terraform(name, terraform_platform_modules_version):
308
309
  )
309
310
 
310
311
 
311
- def _generate_copilot_environment_manifests(name, env_config, session):
312
+ def _generate_copilot_environment_manifests(name, application, env_config, session):
312
313
  env_template = setup_templates().get_template("env/manifest.yml")
313
314
  vpc_name = env_config.get("vpc", None)
314
315
  vpc_id = get_vpc_id(session, name, vpc_name)
315
316
  pub_subnet_ids, priv_subnet_ids = get_subnet_ids(session, vpc_id)
316
- cert_arn = get_cert_arn(session, name)
317
+ cert_arn = get_cert_arn(session, application, name)
317
318
  contents = env_template.render(
318
319
  {
319
320
  "name": name,
@@ -398,6 +399,23 @@ def find_https_listener(session: boto3.Session, app: str, env: str) -> str:
398
399
  return listener_arn
399
400
 
400
401
 
402
+ def find_https_certificate(session: boto3.Session, app: str, env: str) -> str:
403
+ listener_arn = find_https_listener(session, app, env)
404
+ cert_client = session.client("elbv2")
405
+ certificates = cert_client.describe_listener_certificates(ListenerArn=listener_arn)[
406
+ "Certificates"
407
+ ]
408
+
409
+ certificate_arn = None
410
+
411
+ try:
412
+ certificate_arn = next(c["CertificateArn"] for c in certificates if c["IsDefault"])
413
+ except StopIteration:
414
+ raise CertificateNotFoundError()
415
+
416
+ return certificate_arn
417
+
418
+
401
419
  def find_target_group(app: str, env: str, svc: str, session: boto3.Session) -> str:
402
420
  rg_tagging_client = session.client("resourcegroupstaggingapi")
403
421
  response = rg_tagging_client.get_resources(
@@ -650,6 +668,10 @@ def get_maintenance_page_template(template) -> str:
650
668
  return re.sub(r"[^\S]\s+", "", template_contents)
651
669
 
652
670
 
671
+ class CertificateNotFoundError(Exception):
672
+ pass
673
+
674
+
653
675
  class LoadBalancerNotFoundError(Exception):
654
676
  pass
655
677
 
@@ -274,6 +274,38 @@ LIFECYCLE_RULE = {
274
274
  "enabled": bool,
275
275
  }
276
276
 
277
+
278
+ def kms_key_arn_regex(key):
279
+ return Regex(
280
+ r"^arn:aws:kms:.*:\d{12}:(key|alias).*",
281
+ error=f"{key} must contain a valid ARN for a KMS key",
282
+ )
283
+
284
+
285
+ def s3_bucket_arn_regex(key):
286
+ return Regex(
287
+ r"^arn:aws:s3::.*",
288
+ error=f"{key} must contain a valid ARN for an S3 bucket",
289
+ )
290
+
291
+
292
+ def iam_role_arn_regex(key):
293
+ return Regex(
294
+ r"^arn:aws:iam::\d{12}:role/.*",
295
+ error=f"{key} must contain a valid ARN for an IAM role",
296
+ )
297
+
298
+
299
+ DATA_IMPORT = {
300
+ Optional("source_kms_key_arn"): kms_key_arn_regex("source_kms_key_arn"),
301
+ "source_bucket_arn": s3_bucket_arn_regex("source_bucket_arn"),
302
+ "worker_role_arn": iam_role_arn_regex("worker_role_arn"),
303
+ }
304
+
305
+ DATA_MIGRATION = {
306
+ "import": DATA_IMPORT,
307
+ }
308
+
277
309
  S3_BASE = {
278
310
  Optional("readonly"): bool,
279
311
  Optional("services"): Or("__all__", [str]),
@@ -284,6 +316,7 @@ S3_BASE = {
284
316
  Optional("retention_policy"): RETENTION_POLICY,
285
317
  Optional("versioning"): bool,
286
318
  Optional("lifecycle_rules"): [LIFECYCLE_RULE],
319
+ Optional("data_migration"): DATA_MIGRATION,
287
320
  }
288
321
  },
289
322
  }
@@ -3,7 +3,7 @@ line-length = 100
3
3
 
4
4
  [tool.poetry]
5
5
  name = "dbt-platform-helper"
6
- version = "10.8.1"
6
+ version = "10.9.1"
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"