App-FargateStack
view release on metacpan or search on metacpan
share/ChangeLog view on Meta::CPAN
- handle 'task' roles for 'role-name'
* lib/App/IAM.pm.in
(is_policy_attached)
- whitepace, refactored
Wed Sep 17 10:27:29 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.43]:
* t/02-cron.t: removed, needs to be refactored
* VERSION: bump
* bin/app-fargatestack
- make it work for app-fargatestack-checker
* lib/App/AWS.pm.in
(command): use class name if no service set
Tue Sep 9 09:53:32 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.42]:
* README.md: generated
* VERSION: bump
* lib/App/FargateStack/Autoscaling.pm.in: new
* Makefile: add above to build
* lib/App/ApplicationAutoscaling.pm.in
- delete_scheduled_action, not describe-scheduled-actions
* lib/App/FargateStack.pm.in
- + add-scaling-policy, add-scheduled-action,
- + delete-scaling-policy, delete-scheduled-action
* lib/App/FargateStack/AutoscalingConfig.pm.in
(new)
- update config
(parse_cooldown): use class values or use config
(parse_capacity): likewise
(parse_metric): likewise
* lib/App/FargateStack/Builder.pm.in
(get_scheduled_action_names): new
* lib/App/FargateStack/Builder/Autoscaling.pm.in
(_build_autoscaling)
- update policy_arn
- add task name to policy name
- log message tweaks
- qualify required resource (autoscaling:scaling-policy)
(build_scheduled_actions): juxtaposed values in log file
* lib/App/FargateStack/Constants.pm.in
(%DEFAULT_NAMES): add task name to autoscaling policy name for uniqueness
* lib/App/FargateStack/Pod.pm.in
Sun Sep 7 18:18:57 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.41]:
* README.md: generated
* VERSION: bump
* lib/App/FargateStack/AutoscalingConfig.pm.in: new
* Makefile: add above to build
* lib/App/ApplicationAutoscaling.pm.in
(put_scheduled_action)
- fleshed out API call
(describe_scheduled_actions): likewise
* lib/App/EC2.pm.in
(describe_security_groups): named args
* lib/App/Events.pm.in
(_validate_range): escape -
* lib/App/FargateStack/Builder.pm.in
(build)
- register-task-definitions
- check EFS ingress state
(is_efs_ingress_authorized): new
(get_efs_sgs): save state
* lib/App/FargateStack/Builder/Autoscaling.pm.in
(build_autoscaling)
- refactored to use App::FargateStack::AutoScalingConfig
(build_scheduled_actions): new
(_build_autoscaling): new
* lib/App/FargateStack/Builder/Cluster.pm.in
- log message tweaking
* lib/App/FargateStack/Builder/EFS.pm.in: likewise
* lib/App/FargateStack/Builder/HTTPService.pm.in
- likewise
- describe_security_group_rules named arguments
- true not JSON::true
* lib/App/FargateStack/Builder/IAM.pm.in
- log message tweaks
* lib/App/FargateStack/Builder/SecurityGroup.pm.in
(build_security_group)
- check_result
- report security_group_id properly
* lib/App/FargateStack/Builder/TaskDefinition.pm.in
- log message tweaks
* lib/App/FargateStack/Builder/Utils.pm.in
(log_die): die, so we invoke the handler
(fetch_cli_api): escape -
* lib/App/FargateStack/Builder/WafV2.pm.in: likewise
* lib/App/FargateStack/Constants.pm.in
- reorganize
* lib/App/FargateStack/CreateStack.pm.in
- refactored
- respect --no-update option
- true not JSON::true
(cmd_create_stack)
- validate config
- use constants
(parse_autoscaling_options)
- policy_name already set\
- true, not JSON::true
(parse_environment_option): new
* lib/App/FargateStack/Init.pm.in
(init)
- warn on caught eval errors
(_init_route53): log message tweaks
* lib/App/FargateStack/Logs.pm.in
(cmd_logs): fetch_logs
* lib/App/FargateStack/Pod.pm.in
- fixes
* t/02-cron.t: new
Thu Sep 4 16:40:08 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.40]:
* lib/App/ApplicationAutoscaling.pm.in: new
* lib/App/FargateStack/Builder/Autoscaling.pm.in: new
* Makefile: add above to build
* README.md: generated
* VERSION: bump
* lib/App/AWS.pm.in
(command): get service name from _service_name
* lib/App/FargateStack.pm.in
- + App::FargateStack::Builder::Autoscaling
* lib/App/FargateStack/Builder.pm.in
(build)
- clearer message for apply
- autoscaling
* lib/App/FargateStack/Builder/LogGroup.pm.in
(build_log_group)
- refactoring
- detect and mitigate retention days drift
* lib/App/FargateStack/Builder/Utils.pm.in
(fetch_appliation_autoscaling): new
(fetch_cli_api)
- refactoring
- save _service_name
- set options properly
* lib/App/FargateStack/Builder/WafV2.pm.in
(build_waf)
- log message tweak
* lib/App/FargateStack/Constants.pm.in
- + $DEFAULT_CPU_SCALING_LEVEL, $DEFAULT_REQUESTS_SCALING_LEVEL
* lib/App/FargateStack/CreateStack.pm.in
(cmd_create_stack)
- add waf:, autoscaling: keywords
(parse_autoscaling_option): new
(parse_waf_option): new
* lib/App/FargateStack/Pod.pm.in
- document new features
* lib/App/Logs.pm.in
(delete_retention_policy): new
Wed Sep 3 05:05:15 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.39]:
* VERSION: bump
share/ChangeLog view on Meta::CPAN
(_delete_http)
- remove alb arn if it does not exist
- log message about deleting listener rules
- revoke ALB ingress before deletion of sg
(alb_exists): new
(remove_alias_record)
- check for alias record
* lib/App/FargateStack/Builder/HTTPService.pm.in
(create_listeners)
- get_listeners_by_port
- return hash, not array
- check_result after creating
(create_alb)
- refactoring
- set alb object in config
- set security_group object in config
- set scheme based on alb type
(create_alb_security_group)
- refactoring
- check for existence of sg
- authorize ingress based on configured ports (don't hard code)
(create_alias)
- don't check if we don't have an ALB
(get_listeners_by_port): new
* lib/App/FargateStack/Builder/IAM.pm.in
(build_iam_role)
- always check, no caching
- check_result after api calls
- set policy_name in config
* lib/App/FargateStack/Builder/LogGroup.pm.in
(build_log_groups)
- update name in config
* lib/App/FargateStack/Builder/TaskDefinition.pm.in
(compare_task_definition)
- arn, not task_definition_arn
* lib/App/FargateStack/Init.pm.in
(init)
- set subnets in config
* lib/App/FargateStack/Logs.pm.in
- whitespace
* lib/App/Route53.pm.in
(list_resource_record_sets): new
Mon Aug 11 07:40:44 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.27]:
* README.md: generated
* VERSION: bump
* lib/App/EC2.pm.in
(describe_subnet)
- refactoring
- allow list of subnets
(describe_subnets)
- refactoring
- allow hash of args
* lib/App/FargateStack/Init.pm.in
(_init_ec2)
- log messages
- check for 2 subnets
- always validate subnets
(_init_tasks)
- make sure we have private subnets if http service
- log messages
* lib/App/FargateStack/Builder.pm.in
(build)
- confirm apply
- log messages
* lib/App/FargateStack.pm.in
(init_logger): avoid uninitialized warning
(show_config): tidy up output
(cmd_remove_service)
- refactoring
- log messages
- cmd_delete_http => cmd_delete_http_service
(main): likewise
* lib/App/FargateStack/Builder/Service.pm.in
(build_service)
- always try to place task in private subnet
(get_service_subnets)
- get_alb_subnets => get_task_subnets
- do not allow placement of tasks in public subnets for http services
(get_task_subnets)
- align ALB, task AZs
* lib/App/FargateStack/Pod.pm.in
- tweak section on warning about public subnets
- blurb about task placement
Mon Aug 11 05:25:47 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.26]:
* VERSION: bump
* lib/App/AWS.pm.in
(check_result): [$param]
* lib/App/ECS.pm.in
(register_task_definition): whitespace
(list_task_definitions): likewise
(deregister_task_definition): likewise
(create_service)
- assign public IP when in public subnet
* lib/App/FargateStack/Builder/Certificate.pm.in
(build_certificate)
- refactoring
- fix ChangeBatch
* lib/App/FargateStack/Builder/HTTPService.pm.in
(attach_certificate)
- check for certificate arn (may be dryrun mode)
(create_target_group)
- container_port
* lib/App/FargateStack/Builder/Service.pm.in
(build_service): enable public_ip if alb is public
* lib/App/FargateStack/Builder/Utils.pm.in
(fetch_acm): new
* lib/App/Route53.pm.in
(create_alias): fix ChangeBatch
Sun Aug 10 20:34:38 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.25]:
* VERSION: bump
* lib/App/AWS.pm.in
share/ChangeLog view on Meta::CPAN
(remove_alias_record): likewise
(get_efs_sgs): likewise
(authorize_efs_ingress): fetch_ec2, check_result
* lib/App/FargateStack/Builder/HTTPService.pm.in
(build_http_service)
- refactoring
(create_target_group)
- fetch_elbv2
- check_result
(create_alb)
- refactoring
- make sure alb section is created
- check_result
(create_alb_security_group)
- refactoring
- fetch_ec2
(create_alias)
- fetch_route53
* lib/App/FargateStack/Builder/Service.pm.in
(build_service)
- allow count
- @desired_services keys %{$tasks} if not specified (start all)
- use container_port from config if defined
(get_service_subnets)
- fetch_elbv2
- refactoring
* lib/App/FargateStack/Builder/TaskDefinition.pm.in
(register_task_definition)
- refactoring
(define_task_size)
- set size if not defined in config
* lib/App/FargateStack/Builder/Utils.pm.in
(@EXPORT)
- + fetch_ecr, fetch_elbv3, fetch_events, fetch_secrets
(log_die): exit
* lib/App/FargateStack/Init.pm.in
(_init_ec2)
- debug level instead of trace
(_init_route53): whitespace
* lib/App/Route53.pm.in
(create_alias): elb is required
Sun Aug 10 08:24:22 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.23]:
* VERSION: bump
* lib/App/AWS.pm.in
(check_result): new
* lib/App/EC2.pm.in
(revoke_security_group_ingress): new
(delete_security_group): new
* lib/App/ECS.pm.in
(delete_cluster): new
* lib/App/EFS.pm.in
(describe_mount_targets): new
* lib/App/ElbV2.pm.in
(delete_target_group): new
(describe_rules): refactoring
(describe_load_balancers): take k/v/ pairs now
(_find_alb_of_type): describe_load_balancers signature change
(validate_alb): likewise
* lib/App/FargateStack.pm.in
(cmd_remove_service): fix usage message
(main): +elbv2, -elb, +ecr
* lib/App/FargateStack/Builder.pm.in
(remove_listener_rules)
- elbv2, don't need target arn, use domain
- make conditional more obvious (check domain)
(delete_task_resources)
- refactore, debugged
(is_our_alb): must pass alb_arn, tg_arn now
(remove_alb): removed
(remove_alias_record)
- refactoring
- describe_load_balancers signature change
- #JSON::false, not 'false'
(_delete_service): new
(_delete_task_definitions): new
(_delete_scheduled_task): new
(_delete_roles): new
(_delete_http): new
(_delete_log_group): new
(_delete_target_group): new
(_delete_cluster): new
(_delete_security_group): new
(_delete_alias_record): new
(wait_for_alb_delete): new
* lib/App/FargateStack/Builder/HTTPService.pm.in
(attach_certificate):
- fetch_elbv2, not get_elb
- refactoring
(create_listeners): likewise
(create_target_group): likewise
(create_alias): likewise
(create_alb)
- likewise
- describe_load_balancers signature change
* lib/App/FargateStack/Builder/IAM.pm.in
- removed fetch_iam()
* lib/App/FargateStack/Builder/Service.pm.in
- describe_load_balancers signature change
* lib/App/FargateStack/Builder/Utils.pm.in
(fetch_cli_api): new
(fetch_*): new
(is_service_running)
- need to check runningCount
* lib/App/FargateStack/Constants.pm.in
- + $DEFAULT_EFS_PORT, $DEFAULT_ALB_MAX_TRIES, $DEFAULT_ALB_POLL_SLEEPT_TIME
(%DEFAULT_NAMES): + cluster-name
* lib/App/FargateStack/Init.pm.in
(init): refactoring, fetch_*
(_init_ec2): likewise
(_init_tasks): likewise
(_init_account): likewise
(_init_route53)
* lib/App/FargateStack/Route53.pm.in
(display_hosted_zones): use fetch_route53
* lib/App/IAM.pm.in
(delete_role): new
* lib/App/Logs.pm.in
(delete_log_group): new
share/ChangeLog view on Meta::CPAN
(add_bucket_policy)
- + readonly option
- + paths option
* lib/App/FargateStack/Builder/SQSQueue.pm.in
(build_queue)
- refactoring
- support for dead letter queues
(ensure_queue_arn): new
(queue_exists): new
(apply_queue_defaults): new
(add_queue_policy): support for dlq
* lib/App/FargateStack/Builder/Utils.pm.in
(common_args): new
(display_diffs): new
(ToCamelCase): new
(toCamelCase): new
(_toCamelCase): new
(jmespath_mapping): new
(elapsed_time): new
* lib/App/FargateStack/Constants.pm.in
- + $DEFAULT_SQS+
- + $QUEUE_ATTRIBUTES
- + help topics CLOUDWATCH_LOGS, COMMAND LIST
* lib/App/SQS.pm.in
- + max_receive_count, delay_seconds, arn, url
(set_attributes): new
(get_queue_arn): new
(create_queue)
- use constants
- support dead letter queues
* my-stack-minimal.yml
* requires
- + Carp::Always, Text::Diff, Time::Piece, Date::Parse, IO::Pager
* examples/minimal-task.yml: renamed from my-stack-minimal.ym
* examples/minimal-scheduled-task.yml: new
* examples/minimal-https.yml: new
* examples/minimal-http.yml: new
* examples/minimal-daemon.yml: new
* docker/000-default.conf: new
* docker/Dockerfile.apache: new
* docker/HelloWorld.pl: moved from root
* docker/apache2.conf: new
* docker/bookworm-backports.list: new
* docker/start-apache: new
Tue Jul 29 16:14:46 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.7]:
* README.md: generated
* VERSION: bump
* lib/App/ECS.pm.in
(describe_services): new
* lib/App/FargateStack.pm.in
(init)
- call _init_route53() unconditionally and let it figure it out
- set log-level to error for commands that shouldn't log
- command(), not get_command()
(show_config): log_level may not be initialized yet?
(_init_defaults):
- save last_updated and delete last_updated and id from config
- force cache off if config was invalidated
(_init_route53)
- return if not a command that needs route53
- get_cache, not cache()
(cmd_logs)
- refactoring
- order-by, descending (need most recent log stream)
- standardize log message output
(_init_ec2): debug message
(cmd_service_status): new
(_init_config): don't invalidate config here, too early
(cmd_run_task): standardize log message output
(check_task): new
(cmd_stop_service): removed
(cmd_start_service): removed
(cmd_update_service): replaces above
(_update_task_count): new
(init_logger): default 'info'
(main)
- log-time default now true
- added command status
* lib/App/FargateStack/Builder/HTTPService.pm.in
(create_alb)
- create alb in public or private subnet depending on service type (http/https)
Tue Jul 29 09:32:14 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.6]:
* VERSION: bump
* README.md: generated
* lib/App/FargateStack.pm.in
- pod updates
(init)
- die handler for keeping config file in sync
- force --no-cache if config file out of sync
(_init_route53): refactoring
(_init_defaults): moved setting of cache here
(cmd_stop_service): first implementation
(cmd_list_hosted_zones): SCRIPT_NAME no SCRIPT_PATH
(cmd_run_task): likewise
(cmd_register): likewise
(_init_config)
- likewise
- invalidate config object
- add config_name to configuration object
(display_hosted_zones): set route53 if not set
Mon Jul 28 15:52:08 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.5]:
* README.md
* VERSION
* lib/App/EC2.pm.in
(new): find eligible VPC if no vpc_id
(find_eligible_vpcs): new
(describe_internet_gateways): new
(describe_vpc_nat_gateways): new
(describe_nat_gateways): refactored
* lib/App/FargateStack.pm.in
(_init_ec2): no longer using default VPC
* lib/App/FargateStack/Builder/Events.pm.in
(build_events)
- log_die
* lib/App/FargateStack/Builder/LogGroup.pm.in
(build_log_groups): look for group again if arn is missing
Mon Jul 28 13:24:03 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.4]:
* VERSION: bump
* README.md: generated
* lib/App/EC2.pm.in
(new)
- validate subnet ids against usable list
(describe_nat_gateways): new
(find_public_subnets): refactored
(find_private_subnets): likewise
(_find_subnets): likewise
(describe_route_tables): new
(list_route_table_associations): new
(categorize_subnets): rename from find_all_subnets()
* lib/App/FargateStack.pm.in
- pod updates
(show_config): zone_id // -
(cmd_logs): new
(normlize_time_range): new
(_to_epoch): new
(_init_ec2)
- don't set subnets until they are verified
(cmd_run_task)
- remove magic values, use constants
- iterate until no more message
- better formatting of messages
(main)
- + log-time, log-wait, task-timeout
- + logs command
* lib/App/FargateStack/Constants.pm.in
- +$DEFAULT_ECS*, $DEFAULT_LOG*, $SEC_*
* lib/App/Logs.pm.in
- +log_stream_name,
(get_log_events)
- renamed from get_log_event()
- use defaults
(get_next_log_events): new
* my-stack-minimal.yml
Sun Jul 27 15:56:28 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.3]:
* Makefile
- build lib/App/FargateStack.pm separately
* README.md: generated
* VERSION: bump
* lib/App/AWS.pm.in
- get_logger, not log_error
* lib/App/Command.pm.in
- log4perl_conf may not be available so eval
* lib/App/EC2.pm.in
(is_sg_authorized): new
(find_security_group_name): new
* lib/App/ECS.pm.in
- require servic_name, security_groups
- set container port to default
* lib/App/ElbV2.pm.in
(create_target_group): add health checks
(_create_health_check_options): new
(list_certificates): new
- removed add_certficate since we have add_listener_certificates()
* lib/App/FargateStack.pm.in
- pod updates
(show_config): new
(init)
- trace level for Dumper messages
- don't allow --no-update and apply because we need to record some state
- use log_info
- add route53_profile, profile_source, update-config, dryrun settings to init messages
(init_tasks)
- dump images, tasks if some task does not have an image
- fix log_die message
(_init_defaults):
- set profile source
- update route53 config
(_init_route53)
- trace level for Dumper messages
- dump alb, http setting in debug mode
- display hosted zones if zone invalid
- find the zone if it is not provided
(cmd_list_zones): new
(display_hosted_zones): new
(_init_ec2): log_warn
(_init_config): log_info
(cmd_run_task): -sprintf
(cmd_create_service): likewise
(cmd_register): -likewise
(help)
- fix subject parsing
- can't use ?, use help list
- regex matching
(cmd_plan): new
(cmd_apply): new
(cmd_update_target): new
(main)
- + profile_source
- move default options to %default_options
- move commands to %commands
(create_rule): log debug message
(validate_alb)
- validate the alb by scheme
* lib/App/FargateStack/Builder.pm.in
(build)
- log_info, log_warn
- log if we update the config
(configure_alb)
- set ALB type based on task type (http or https)
* lib/App/FargateStack/Builder/Certificate.pm.in
- log_info, log_warn
* lib/App/FargateStack/Builder/HTTPService.pm.in
(build_http_service)
- log_warn
- attach_certificate() if is_https
- check to see if we need to authorize ingress
(attach_certificate): new
(create_listeners)
- trace level for Dumper messages
- don't redirect unless secure and redirect_80 set
- log_info, log_warn
- add_listener_certificates(), not add_certificate()
- $elb->fetch_rule_arns_by_arn
(create_target_group)
- add health checks
- task, not service
- log_info, log_warn
(create_alb)
- log_info, log_warn, log_die
- better die message if we can't describe alb
- update alb security group name
- moved message about finding sg with ingress
- trace level for Dumper messages
(create_alias)
- log_info, log_warn
- don't create alias record if one exists
* lib/App/FargateStack/Builder/LogGroups.pm.in
(build_log_groups):
- update log group name from arn if needed
- fix log group arn when first creating
* lib/App/FargateStack/Builder/IAM.pm.in
(build_iam_role)
- trace level for Dumper messages
- check policy if we don't see a name in the config
- if we have an ARN for the role we probably created the policy
- log_warn
- add debug logging
(create_role)
- trace level for Dumper messages
- use %AWS_SERVICE_DOMAINS instead of constructing service
- refactoring using choose(), sub {}
- log_warn
- add debug logging
* lib/App/FargateStack/Builder/SecurityGroup.pm.in
(build_security_group)
- trace level for Dumper messages
- log_die
- add debug logging
- make sure group_id gets set in config
* lib/App/FargateStack/Builder/Service.pm.in
(build_service)
- service_name, not task_name
- specify container port
* lib/App/FargateStack/Builder/TaskDefinition.pm.in
(create_taskdef_files)
- update port values in config
(register_task_definition)
- log_warn, log_die, log_info
- cpu, memory must be string
(compare_task_definition)
- set to false if no current task definition exists
* lib/App/FargateStack/Builder/Utils.pm.in
(choose): new
(dmp): new
* lib/App/FargateStack/Constants.pm.in
- + $DEFAULT_HEALTH_CHECK_*
- + %AWS_SERVICE_DOMAINS
- remove load balancers, one shot
- add scheduled jobs, environment variables, secrets, queues, buckets
- add log groups, efs support, filesystem support
* lib/App/Route53.pm.in
- + unlink
(find_hosted_zone): new
(create_alias)
- required ALB DNS name and ALB zone now instead of find using ALB ARN
- fix Changes payload
(change_resource_record_sets)
- die instead of croak
- use unlink
- payload already includes Changes
(list_hosted_zones): new
(validate_hosted_zones)
- die instead of croak
(find_alias_record): new
* my-stack-minimal.yml
Thu Jul 24 14:50:31 2025 Rob Lauer <rlauer6@comcast.net>
[1.0.2]:
* README.md: generated
* VERSION: bump
* lib/App/AWS.pm.in
(command)
- log result in trace mode
- use log_error
* lib/App/Command.pm.in
(execute)
- log flattended command
- use log_error
* lib/App/EC2.pm.in
(new)
- cache subnets
- use log_die
(find_public_subnets): use cached version
(find_private_subnets): likewise
* lib/App/FargateStack.pm.in
- +events, iam, logs, cache
- pod updates
(init)
- setup cache str
- log cache
- don't validate images if cached
(_init_account)
- use cached account
- use log_infi, log_die
(_init_ec2)
- pass subnets if caching
- do not validate subnets if caching
(help)
- display list of subjects in ASCII table
- use pager
* lib/App/FargateStack/Builder.pm.in
(update_config_id): new
* lib/App/FargateStack/Builder/Cluster.pm.in
- cache cluster
- removed create_fargate_role
* lib/App/FargateStack/Builder/EFS.pm.in
(add_volumes)
- +readonly
- cached EFS parameters
* lib/App/FargateStack/Builder/SecurityGroup.pm.in
(build_security_group)
- use cache
- refactoring
* lib/App/FargateStack/Builder/Events.pm.in
(build_events)
- some refactoring
(create_event_target)
- likewise
- use log_die
(build_events_iam_role)
- refactoring
- use cache
- use log_die
- update policy_name
(fetch_events): new
* lib/App/FargateStack/Builder/IAM.pm.in
(build_iam_role)
- refactoring
- use cache
- use log_die
(create_role)
- use cache
- use log_info
- use log_die
(fetch_iam): new
* lib/App/FargateStack/Builder/LogGroup.pm.in
- refactoring
- use cache
(fetch_logs): new
* lib/App/FargateStack/Builder/Secrets.pm.in
- refactoring
- store arn
- use cache
* lib/App/FargateStack/Builder/TaskDefinition.pm.in
(write_taskdef)
- refactoring
(compare_task_definition): new
* lib/App/FargateStack/Builder/Utils.pm.in: +log_trace
* lib/App/FargateStack/Constants.pm.in
- +$DEFAULT_LOG_RETENTION_DAYS, $SPACE, $DASH, $CLOUDWATCH_LOGS_RETENTION_DAYS
- %HELP_SUBJECT values now array
- add bold white for TRACE level
* lib/App/Logs.pm.in
- refactoring
Wed Jul 23 08:00:19 2025 Rob Lauer <rlauer6@comcast.net>
( run in 0.595 second using v1.01-cache-2.11-cpan-39bf76dae61 )