Deploying Scout¶
Same-Cluster Mode Only (Phase 1)
Scout must run in the same Kubernetes cluster as the Bindy operator. It watches Ingresses in the local cluster and writes ARecord CRs to the local bindy-system namespace. Cross-cluster support is planned for Phase 2.
Bindy Scout is an optional companion controller that watches Ingress resources across your cluster and automatically creates ARecord CRs on behalf of application teams — without requiring them to have write access to the bindy namespace.
See the Bindy Scout guide for the full conceptual overview, including the scout bee backstory, how record naming works, and the multi-cluster roadmap.
Prerequisites¶
- The main Bindy operator must already be running (Deploying Operator)
- CRDs must be installed (Scout uses the
ARecordCRD) - A
DNSZonemust exist for the zone Scout will write records into
Install¶
Deploy Scout from the latest release:
Specific version
To pin to a specific release instead of latest:
This creates:
- A
ServiceAccount(bindy-scout) inbindy-system - A
ClusterRole/ClusterRoleBindingfor cluster-wide Ingress and DNSZone read access - A
Role/RoleBindingforARecordwrite access inbindy-system - A
Deploymentrunning thebindy scoutcontroller
Configure¶
Scout requires one mandatory setting: the logical cluster name that is stamped on every ARecord it creates. Set it via environment variable or CLI flag.
CLI takes precedence
When both --bind9-cluster-name and BINDY_SCOUT_CLUSTER_NAME are set, the CLI flag wins.
Full configuration reference¶
| Variable | CLI flag | Default | Description |
|---|---|---|---|
BINDY_SCOUT_CLUSTER_NAME |
--bind9-cluster-name |
— | Required. Logical cluster name stamped on all created ARecord labels. |
BINDY_SCOUT_NAMESPACE |
--namespace |
bindy-system |
Namespace where ARecord CRs are created. |
POD_NAMESPACE |
— | default |
Scout's own namespace. Always excluded from Ingress watching. Inject via downward API. |
BINDY_SCOUT_EXCLUDE_NAMESPACES |
— | — | Comma-separated list of additional namespaces to skip. |
RUST_LOG |
— | info |
Log level: trace, debug, info, warn, error. |
RUST_LOG_FORMAT |
— | text |
Log format: text or json. |
Verify¶
Check that the Scout pod is running:
Expected output:
Check Scout logs:
You should see Scout announce which namespaces it is watching and confirm it is ready.
Test¶
Annotate an Ingress in any non-excluded namespace:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app
namespace: my-app-ns
annotations:
bindy.firestoned.io/recordKind: "ARecord"
bindy.firestoned.io/zone: "example.com"
spec:
rules:
- host: my-app.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-app
port:
number: 80
Within seconds, Scout creates an ARecord in bindy-system:
Next Steps¶
- Bindy Scout Guide — full conceptual guide, annotations reference, record naming, and RBAC details
- Environment Variables — complete Scout environment variable reference