- Introduced a new config module to manage TTL settings for EC2 instances, allowing for auto-termination based on environment variables. - Updated the AWSProvider and manager to utilize the new TTL settings, including scheduling instance termination via EventBridge Scheduler. - Added utility functions for resolving the scheduler role ARN and creating termination schedules, ensuring robust error handling and logging. - Maintained existing code logic while integrating new features for improved instance lifecycle management.
22 lines
615 B
Python
22 lines
615 B
Python
import os
|
|
|
|
|
|
# Default TTL minutes for instance auto-termination (cloud-side scheduler)
|
|
# Can be overridden via environment variable DEFAULT_TTL_MINUTES
|
|
DEFAULT_TTL_MINUTES: int = int(os.getenv("DEFAULT_TTL_MINUTES", "60"))
|
|
|
|
# Master switch for TTL feature
|
|
ENABLE_TTL: bool = os.getenv("ENABLE_TTL", "true").lower() == "true"
|
|
|
|
# EventBridge Scheduler role ARN for scheduling EC2 termination
|
|
AWS_SCHEDULER_ROLE_ARN: str = os.getenv("AWS_SCHEDULER_ROLE_ARN", "").strip()
|
|
|
|
|
|
def compute_ttl_seconds(ttl_minutes: int) -> int:
|
|
try:
|
|
return max(0, int(ttl_minutes) * 60)
|
|
except Exception:
|
|
return 0
|
|
|
|
|