# Minimal Server Configuration Template
# Import from installed provisioning package
import provisioning.settings as settings
import provisioning.server as server
import provisioning.defaults as defaults

# Import taskservs (infrastructure services)
# The os taskserv is loaded automatically during workspace init
# To use it, import from the taskservs directory:
# import taskservs.os

# To discover more taskservs: provisioning dt
# To load additional taskservs: cd infra/<name> && provisioning mod load taskservs . <taskserv_name>
# Example: provisioning mod load taskservs . kubernetes containerd cilium

# Main settings for this infrastructure
main_settings: settings.Settings = {
    main_name = "minimal-infra"
    main_title = "Minimal Infrastructure"

    # Configure paths relative to infrastructure directory
    settings_path = "../../data/settings.yaml"
    defaults_provs_dirpath = "./defs"
    prov_data_dirpath = "../../data"
    created_taskservs_dirpath = "../../tmp/deployment"
    prov_resources_path = "../../resources"
    created_clusters_dirpath = "../../tmp/clusters"
    prov_clusters_path = "./clusters"

    # Configure cluster settings
    cluster_admin_host = ""  # Will be set by provider
    servers_wait_started = 30

    runset = {
        wait = True
        output_format = "human"
        output_path = "../../tmp/deployment"
        inventory_file = "./inventory.yaml"
        use_time = True
    }
}

# Minimal server definition - customize as needed
example_servers: [server.Server] = [
    {
        hostname = "server-01"
        title = "Basic Server"

        lock = False
        time_zone = "UTC"
        running_wait = 10
        running_timeout = 200

        # Network configuration
        network_utility_ipv4 = True
        network_public_ipv4 = True

        # User configuration
        user = "admin"
        user_ssh_port = 22
        fix_local_hosts = True
        labels = "env: development"
    }
]

# Export configuration
{
    settings = main_settings
    servers = example_servers
}
