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 )