Files
vctp2/src/vctp.yml
T
nathan 8ccf5a7009
continuous-integration/drone/push Build is passing
enhance utilisation of postgres features
2026-04-20 10:19:27 +10:00

91 lines
3.2 KiB
YAML

settings:
log_level: "info"
log_output: "text"
database_driver: "sqlite"
# PostgreSQL remains experimental and is disabled by default.
enable_experimental_postgres: false
database_url: "/var/lib/vctp/db.sqlite3"
reports_dir: /var/lib/vctp/reports
bind_ip:
bind_port: 9443
bind_disable_tls: false
tls_cert_filename: "/var/lib/vctp/vctp.crt"
tls_key_filename: "/var/lib/vctp/vctp.key"
# Optional explicit key source for credential encryption/decryption.
# Leave empty to use host-derived key material.
encryption_key: ""
vcenter_username: ""
vcenter_password: ""
vcenter_insecure: false
# Legacy API endpoints are disabled by default.
enable_legacy_api: false
auth_enabled: false
auth_mode: "disabled" # disabled | optional | required
auth_jwt_signing_key: "" # base64-encoded key, required when auth_enabled=true
auth_token_lifespan_minutes: 120
auth_jwt_issuer: "vctp"
auth_jwt_audience: "vctp-api"
auth_clock_skew_seconds: 60
auth_group_role_mappings: {}
ldap_groups: []
ldap_bind_address: ""
ldap_base_dn: ""
ldap_trust_cert_file: ""
ldap_disable_validation: false
ldap_insecure: false
enable_pprof: false
# Deprecated (ignored): legacy event poller
vcenter_event_polling_seconds: 0
# Deprecated (ignored): legacy inventory poller
vcenter_inventory_polling_seconds: 0
vcenter_inventory_snapshot_seconds: 3600
vcenter_inventory_aggregate_seconds: 86400
hourly_snapshot_concurrency: 0
hourly_snapshot_max_age_days: 60
daily_snapshot_max_age_months: 12
# Retain hourly-table indexes only for recent data.
# -1 disables index cleanup; 0 trims indexes from all hourly tables.
hourly_index_max_age_days: 7
snapshot_cleanup_cron: "30 2 * * *"
hourly_snapshot_retry_seconds: 300
hourly_snapshot_max_retries: 3
capture_write_batch_size: 1000
snapshot_table_compat_mode: true
async_report_generation: true
# Postgres-only: when true, vm_hourly_stats is migrated/managed as monthly range partitions.
postgres_vm_hourly_partitioning_enabled: false
# Scheduled aggregation engine: go (default) or sql (canonical Postgres SQL path rollout flag).
scheduled_aggregation_engine: "go"
hourly_job_timeout_seconds: 1200
hourly_snapshot_timeout_seconds: 600
daily_job_timeout_seconds: 900
monthly_job_timeout_seconds: 1200
monthly_aggregation_granularity: "daily"
monthly_aggregation_cron: "10 3 1 * *"
# Optional: override Summary worksheet pivot layout in daily/monthly XLSX reports.
# metric values: avg_vcpu, avg_ram, prorated_vm_count, vm_name_count
report_summary_pivots:
- metric: avg_vcpu
title: "Sum of Avg vCPUs"
pivot_name: "PivotAvgVcpu"
pivot_range: "Summary!A3:H60"
- metric: avg_ram
title: "Sum of Avg RAM"
pivot_name: "PivotAvgRam"
pivot_range: "Summary!J3:P60"
- metric: prorated_vm_count
title: "Sum of prorated VM count"
pivot_name: "PivotProratedVmCount"
pivot_range: "Summary!A63:H82"
title_cell: "A61"
- metric: vm_name_count
title: "Count of VM Name"
pivot_name: "PivotVmNameCount"
pivot_range: "Summary!J63:P82"
title_cell: "J61"
cleanup_job_timeout_seconds: 600
tenants_to_filter:
node_charge_clusters:
srm_activeactive_vms:
vcenter_addresses: