c37ddae932
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
import oci
|
|
import os
|
|
from oci_common import run_monitor
|
|
|
|
# Load configuration from environment
|
|
COMPARTMENT_ID = os.environ["COMPARTMENT_ID"]
|
|
AVAILABILITY_DOMAIN = os.environ["AVAILABILITY_DOMAIN"]
|
|
SUBNET_ID = os.environ["SUBNET_ID"]
|
|
IMAGE_ID = os.environ["IMAGE_ID"]
|
|
SSH_KEY = os.environ["SSH_KEY"]
|
|
DISPLAY_NAME = os.environ.get("DISPLAY_NAME", "free-arm-instance")
|
|
|
|
SHAPE = "VM.Standard.A1.Flex"
|
|
OCPUS = 4
|
|
MEMORY_GB = 24
|
|
INTERVAL = 60 # Check every minute
|
|
|
|
def get_launch_details():
|
|
return oci.core.models.LaunchInstanceDetails(
|
|
compartment_id=COMPARTMENT_ID,
|
|
availability_domain=AVAILABILITY_DOMAIN,
|
|
shape=SHAPE,
|
|
shape_config=oci.core.models.LaunchInstanceShapeConfigDetails(
|
|
ocpus=OCPUS,
|
|
memory_in_gbs=MEMORY_GB
|
|
),
|
|
image_id=IMAGE_ID,
|
|
subnet_id=SUBNET_ID,
|
|
display_name=DISPLAY_NAME,
|
|
metadata={"ssh_authorized_keys": SSH_KEY},
|
|
)
|
|
|
|
if __name__ == "__main__":
|
|
run_monitor(
|
|
name="ARM",
|
|
shape=f"{SHAPE} ({OCPUS} OCPUs, {MEMORY_GB}GB RAM)",
|
|
launch_details_func=get_launch_details,
|
|
interval=INTERVAL
|
|
)
|