cdk/cdk-domainless-mode/app.py (60 lines of code) (raw):

#!/usr/bin/env python3 import os import aws_cdk as cdk from cdk.cdk_stack import CdkStack import aws_cdk.aws_ec2 as ec2 import aws_cdk as cdk import aws_cdk.aws_secretsmanager as secretsmanager import json # Open the input file with open('data.json', 'r') as file: # Load the JSON data data = json.load(file) def get_value(key): return os.environ.get(key, data.get(key.lower())) tag = cdk.Tag("Name", "Test Credentials-fetcher in Domainless mode") aws_region = get_value("AWS_REGION") prefix_list = get_value("PREFIX_LIST") domain_admin_password = data["domain_admin_password"] directory_name = data["directory_name"] windows_instance_tag = data["windows_instance_tag"] linux_instance_tag = data["linux_instance_tag"] key_name = get_value("KEY_PAIR_NAME") number_of_gmsa_accounts = data["number_of_gmsa_accounts"] s3_bucket = get_value("S3_PREFIX") + data["s3_bucket_suffix"] app_name = data["stack_name"] username = data["username"] password = data["password"] secret_name = data["secret_name"] task_definition_template_name = data["task_definition_template_name"] cluster_name = data["cluster_name"] docker_image_tag = data["docker_image_tag"] dockerfile_path = data["dockerfile_path"] ecr_repo_name = data["ecr_repo_name"] rpm_file = data["rpm_file"] app = cdk.App() cdk_stack = CdkStack(app, app_name) cdk_stack.init_vpc(prefix_list = prefix_list, key_pair_name=key_name, stack_name=app_name) cfn_microsoft_AD = cdk_stack.init_DirectoryService(directory_name=directory_name, domain_admin_password=domain_admin_password) directory_id = cfn_microsoft_AD.ref cdk_stack.init_route53_endpoint(domain_name = directory_name, vpc = cdk_stack.vpc) windows_instance = cdk_stack.launch_windows_instance(instance_tag = windows_instance_tag, password = domain_admin_password, domain_name = directory_name, key_name = key_name, number_of_gmsa_accounts = number_of_gmsa_accounts, s3_bucket_name = s3_bucket ) windows_instance.node.add_dependency(cfn_microsoft_AD) ecs_cluster = cdk_stack.create_ecs_cluster( cluster_name, instance_tag=linux_instance_tag, password = domain_admin_password, domain_name = directory_name, key_pair=cdk_stack.key_pair, number_of_gmsa_accounts=number_of_gmsa_accounts, vpc = cdk_stack.vpc, security_group=cdk_stack.security_group, rpm_file=rpm_file, s3_bucket=s3_bucket) ecs_cluster.node.add_dependency(windows_instance) task_definition = cdk_stack.create_task_definition(task_definition_template_name=task_definition_template_name) docker_image_uri = cdk_stack.build_push_dockerfile_to_ecr(dockerfile_path, ecr_repo_name, aws_region, docker_image_tag) app.synth()