From 55c1b4e4de960e0dfe7f903bb479b0032d75e3d2 Mon Sep 17 00:00:00 2001 From: badra001 Date: Thu, 27 Apr 2023 20:23:16 -0400 Subject: [PATCH] fix --- README.md | 2 +- code/ddns-lambda.py | 46 +++++++++++++++++++++++++------------------ code/ddns-lambda.zip | Bin 24969 -> 25242 bytes variables.tf | 2 ++ 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 031bf74..528073b 100644 --- a/README.md +++ b/README.md @@ -149,7 +149,7 @@ No modules. | [enable\_sns](#input\_enable\_sns) | Enable use of SNS for reporting errors | `bool` | `false` | no | | [enable\_sqs](#input\_enable\_sqs) | Enable use of SQS for SNS to send errors. Requires the use of enable\_sns as well | `bool` | `false` | no | | [kms\_key\_name](#input\_kms\_key\_name) | Different KMS Key (for SNS and SQS) to override default of var.name | `string` | `null` | no | -| [lambda\_environment\_variables](#input\_lambda\_environment\_variables) | Map of lambda environment variables and values | `map(string)` |
{
"DNS_RR_TimeToLive": 60,
"DebugLogLevel": "INFO",
"DynamoDBName": null,
"HeritageIdentifier": "dynr53",
"HeritageTXTRecordPrefix": "_txt",
"MaxApiRetry": 10,
"SleepTime": 60,
"SnsEnable": false,
"SnsTopicArn": "",
"TagKeyCname": "boc:dns:cname",
"TagKeyHostName": "boc:dns:name",
"TagKeyZone": "boc:dns:zone"
}
| no | +| [lambda\_environment\_variables](#input\_lambda\_environment\_variables) | Map of lambda environment variables and values | `map(string)` |
{
"DNS_RR_TimeToLive": 60,
"DebugLogLevel": "INFO",
"DynamoDBName": null,
"HeritageIdentifier": "dynr53",
"HeritageTXTRecordPrefix": "_txt",
"MaxApiRetry": 10,
"SleepTime": 60,
"SnsEnable": false,
"SnsTopicArn": "",
"TagKeyCname": "boc:dns:cname",
"TagKeyFlags": "boc:dns:flags",
"TagKeyHostName": "boc:dns:name",
"TagKeyPtrname": "boc:dns:ptrname",
"TagKeyZone": "boc:dns:zone"
}
| no | | [lambda\_environment\_variables\_override](#input\_lambda\_environment\_variables\_override) | Map of lambda environment variables and values to override from the defaults | `map(string)` | `{}` | no | | [lambda\_name](#input\_lambda\_name) | Different Lambda name to override default of var.name | `string` | `null` | no | | [name](#input\_name) | Name to use within all the created resources (default: inf-dynamic-route53) | `string` | `"inf-dynamic-route53"` | no | diff --git a/code/ddns-lambda.py b/code/ddns-lambda.py index 6c1bac8..c4f40ff 100755 --- a/code/ddns-lambda.py +++ b/code/ddns-lambda.py @@ -73,7 +73,7 @@ LOGGER = logging.getLogger() account_id = None region = None -VERSION = '1.2.0b85' +VERSION = '1.2.0b86' # Read Env variables DEBUG_LOG_LEVEL = os.environ.get('DebugLogLevel', 'INFO') @@ -667,6 +667,9 @@ def lambda_handler( tag_data['name'] = tag_data_tuple(*process_tags_name(tags)) LOGGER.debug("New tag_data structure: %s", str(pformat(tag_data)) + lineno()) + emr_status = discover_emr(tags_dict) + LOGGER.info(f"discover_emr instance: {instance_id} result {emr_status}") + default_hostname = '-'.join(['ip'] + private_ip.split('.')) if tag_data['option_zone'].valid: if tag_data['option_name'].valid: @@ -877,7 +880,7 @@ def lambda_handler( LOGGER.info( f"flags=noforward, not adding A and heritage TXT for host {final_private_hostname} zone {zone_data_forward.name} value {private_ip}") - if not flags['noreverse']: + if not flags['noptr']: # fqdn = create_fqdn(final_private_hostname, final_hosted_zone_name) try: if reverse_zone_associated: @@ -946,7 +949,7 @@ def lambda_handler( instance_id, str(err) + lineno()) else: LOGGER.info( - f"flags=noreverse, not adding PTR and heritage TXT for host {tag_data['ptr_entry'].hostname} zone {tag_data['ptr_entry'].zonename} value {final_private_dns_name}") + f"flags=noptr, not adding PTR and heritage TXT for host {tag_data['ptr_entry'].hostname} zone {tag_data['ptr_entry'].zonename} value {final_private_dns_name}") # else: # not running so delete the records. Note this may leave orphans around if the flags are set and then the host is shut down. We may want to remove no matter what. # go through the dns_data records, and delete them. dns_data contains the records that were added. It is possible the tags have changed @@ -1025,11 +1028,14 @@ def lambda_handler( # create CNAME record in private zone if state == 'running': try: - if not flags['nocname']: - LOGGER.debug(f"cname_host_name: {cf_hostname} {lineno()}") - LOGGER.debug(f"cname_domain_suffix: {cf_zonename} {lineno()}") - LOGGER.debug(f"cname_domain_suffix_id: {cf_zonename_id} {lineno()}") - LOGGER.debug(f"cname_target: {final_private_dns_name} {lineno()}") + if not flags['nocname'] and (all(emr_status.is_cluster, emr_status.is_master) or not emr_status.is_cluster) + LOGGER.debug(f"cname_host_name: {cf_hostname} {lineno()}") + LOGGER.debug(f"cname_domain_suffix: {cf_zonename} {lineno()}") + LOGGER.debug(f"cname_domain_suffix_id: {cf_zonename_id} {lineno()}") + LOGGER.debug(f"cname_target: {final_private_dns_name} {lineno()}") + if emr_status.is_cluster: + LOGGER.info( + f"instance {instance_id}: is_cluster && is_master cluster_id {cluster_id} setting CNAME {cf_hostname} in zone {cf_zonename} {lineno()}") create_response = create_resource_record( route53, @@ -3096,7 +3102,12 @@ def tags_to_dict(tags): def process_tags_flags(tags): """ - Process the DNS flags tags into for tags[key]=='boc:dns:flags' + Process the DNS flags tags into for tags[key]=='boc:dns:flags'. Available flags: + + - noforward: do not define A or AAAA (when available) or the associated heritage TXT record + - noptr: do not define a PTR or associated heritage TXT record with default or boc:dns:ptrname flag + - nocname: do not define a CNAME or associated heritage TXT record, even if specified in the boc:dns:cname flag + - noheritage: do not create a heritage TXT record, used to indicate which service created the entries :param list(dict(string)) tags: tags from instance, list of dict of string. Keys and values turned to lowercase. :return dict(string): flag settings in defaultdict for controlling which names are registered and when @@ -3269,10 +3280,6 @@ def parse_hostname_to_components(name): return (False, host, domain) -# noforward -# noreverse -# noheritage - def create_fqdn(host, zone): """ This takes a hostname (may or nay not be FQDN) and a zone, and returns the proper concatenation of the two, with a trailing dot. @@ -3287,7 +3294,7 @@ def create_fqdn(host, zone): return fqdn -def discover_emr_master(tags): +def discover_emr_cluster(tags): """ This tags a dict of tags and determines if the appropriate EMR tags are set. @@ -3298,16 +3305,17 @@ def discover_emr_master(tags): - emr:elasticmapreduce:instance-group-role == MASTER :param dict tags: dict of tag - :return (bool,str): Tuple containing is_master (is an EMR node and is the master), and the cluster_id if it's a cluster. cluster_id will be empty if not a cluster. + :return (bool,str): Tuple containing is_master, is_cluster, and cluster_id if it's a cluster. cluster_id will be empty if not a cluster. """ + cluster_tuple = namedtuple('EMRCluster', ['cluster', 'master', 'cluster_id']) cluster_id = tags.get('aws:elasticmapreduce:job-flow-id', '') is_master = tags.get('aws:elasticmapreduce:instance-group-role', '') == 'MASTER' - is_cluster = cluster_id != '' - LOGGER.debug( - f"discover_emr: is_cluster {is_cluster}, is_master {is_master}, cluster_id {cluster_id}") - return (is_master and is_cluster, cluster_id) + + result = cluster_tuple(is_cluster, is_master, cluster_id) + LOGGER.debug(f"discover_emr: {str(result)} {lineno()}") + return result def evaluate_event_action(event): diff --git a/code/ddns-lambda.zip b/code/ddns-lambda.zip index 1fd45a6fa94a8234a338e3a90a295be8a2c38c30..3d5c84ad4d0f03e051108425257eacd2d5055160 100644 GIT binary patch delta 25126 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 Zihih}O$=fH0FWk=QDHI$NMZm0005UJ0NDTl delta 24850 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 JH(>w(000W&O;`W` diff --git a/variables.tf b/variables.tf index 9b9c410..14448f1 100644 --- a/variables.tf +++ b/variables.tf @@ -50,6 +50,8 @@ variable "lambda_environment_variables" { TagKeyCname = "boc:dns:cname" TagKeyHostName = "boc:dns:name" TagKeyZone = "boc:dns:zone" + TagKeyPtrname = "boc:dns:ptrname" + TagKeyFlags = "boc:dns:flags" } }