Traditionally, connecting to remote hosts and services requires knowledge of the endpoint’s connection info (e.g. the IP address and port of the service). This creates complexity when managing the onboarding of new resources at scale or dealing with dynamic services whose connection info frequently changes.
Service discovery focuses on automating the process of onboarding new or changed infrastructure resources – and their connection info – to Boundary as hosts.
»Automating Service Discovery in Boundary
Boundary supports target/service discovery in three primary workflows:
Manual configuration: Boundary administrators can manually configure static hosts and targets via the administrator UI and CLI. Manual configuration of targets with static hosts requires knowledge of the IP address or endpoint used to connect to a host.
Service discovery via configuration as code with Terraform: Boundary is fully programmatically instrumented and the discovery and configuration of new infrastructure targets can be automated with Boundary’s Terraform provider. This allows for dynamic configuration of a host and target without the need for prior knowledge of the target’s connection info.
Runtime service discovery via dynamic host catalogs: Boundary dynamic host catalogs automate the ingestion of resources from infrastructure providers into Boundary. Boundary hosts are automatically created, updated and added to host sets in order to reflect the connection information maintained in these providers. This removes the need to know host connection info or reapply infrastructure as code templates to configure new or changed resources.
»Dynamic Host Catalogs
Dynamic host catalogs are an agentless workflow for Boundary to securely query infrastructure providers at runtime to discover and configure new services. Boundary dynamic host catalogs are written in go-plugin and run as separate processes. Boundary administrators can define rules for which external resources should be ingested into the catalog by creating dynamic host sets with an attributes filter. Attributes specify the fields which the plugin should use to lookup which hosts should be members of this host set.
Currently, Boundary supports dynamic host catalog implementations for AWS and Azure and we will continue to grow this ecosystem to support additional providers.
You can get started with dynamic host catalogs here.