-
-
Notifications
You must be signed in to change notification settings - Fork 865
Open
Description
Overview
I would like to request a new feature for Homer - integration with HashiCorp Consul Catalog for automatic service discovery and dynamic dashboard generation.
Problem
Currently, Homer requires manual configuration of each service in the YAML configuration file. In environments using Consul for service discovery, this creates duplication of effort and maintenance overhead as services are added, removed, or changed.
Proposed Solution
Add a new Consul Catalog integration that allows Homer to:
- Automatically discover services registered in Consul
- Dynamically generate service cards based on Consul metadata
- Provide filtering options to select which services to display
Desired Features
- Service Discovery from Consul
# Example configuration
consul:
enabled: true
url: "http://consul-server:8500"
refresh_interval: 30000
- Advanced Filtering Options
consul:
enabled: true
url: "http://consul-server:8500"
filters:
- service_name: "^(db|web)*"
- tags: [ "sla:max"] # Filter by tags
- metadata: {"environment": "prod"} # Filter by custom metadata
- Customizable Display Properties
consul:
enabled: true
url: "http://consul-server:8500"
mapping:
title: "${service.Name}" # Use Consul service name
subtitle: "${service.Tags}" # Display tags
logo: "/assets/icons/${service.Meta['icon']}.png" # Custom icons from metadata
tagline: "${service.Meta['description']}" # Description from metadata
- Health Status Integration
- Display service health status (passing, warning, critical) from Consul health checks
- Color-code service cards based on health status
- Optional: hide healthy services
- Additional Considerations
- Caching: Implement client-side caching to reduce load on Consul servers
- Authentication: Support for Consul ACL tokens and TLS
- Fallback: Graceful degradation when Consul is unavailable
- Customization: Allow custom templates for how services are displayed
Metadata
Metadata
Assignees
Labels
No labels