proclaim

package module
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 21, 2023 License: MIT Imports: 0 Imported by: 0

README

Proclaim

A Kubernetes controller and CRD that publishes DNS-SD records.

Latest Version Build Status Code Coverage

Proclaim defines a DNSSDServiceInstance Kubernetes custom resource that describes a DNS-SD service instance to be advertised on one of the supported DNS provider implementations:

Deployment

Helm

Proclaim can be deployed using the Helm chart in this repository. The default values are suitable for most deployments.

# configure the "proclaim" secret (see below)
helm pull https://github.com/dogmatiq/proclaim/tree/main/charts dogmatiq/proclaim
helm install proclaim --values values.yaml dogmatiq/proclaim

Please note that pulling the Helm chart from the main branch will always install the latest version. Use a version number (e.g. v0.4.2) to install a specific version.

Configuration

Each provider needs its own credentials which are stored in a Kubernetes secret named proclaim. This secret is NOT created by the Helm chart.

Amazon Route 53
  1. Set the proclaim.providers.route53.enabled value to true in the Helm chart values file.
  2. Configure AWS credentials:
    • IRSA is recommended when running under EKS. The Helm chart creates a service account which can be annotated with IAM-specific annotations by setting the proclaim.serviceAccount.annotations value in the values file.
    • Otherwise, the standard AWS environment variables (AWS_ACCESS_KEY_ID, etc) can be added to the proclaim secret.

The example IAM policy illustrates the precise set of permissions required for Proclaim to function.

DNSSimple
  1. Set the proclaim.providers.dnsimple.enabled value to true in the Helm chart values file.
  2. Add a DNSIMPLE_TOKEN key to the proclaim secret. The token can be either a "user" token or an "account" token.

Documentation

Overview

Package proclaim is a Kubernetes controller that advertises DNS-SD service instances via unicast DNS.

Directories

Path Synopsis
cmd
proclaim
Package main is the executable for the Proclaim Kubernetes controller.
Package main is the executable for the Proclaim Kubernetes controller.
Package crd contains objects used to represent Kubernetes Custom Resource Definitions (CRDs) defined by Proclaim.
Package crd contains objects used to represent Kubernetes Custom Resource Definitions (CRDs) defined by Proclaim.
Package provider contains abstractions for advertising DNS-SD services by manipulating DNS records.
Package provider contains abstractions for advertising DNS-SD services by manipulating DNS records.
dnsimpleprovider
Package dnsimpleprovider provides a driver implementation that advertises DNS-SD service instances on domain names hosted by dnsimple.com.
Package dnsimpleprovider provides a driver implementation that advertises DNS-SD service instances on domain names hosted by dnsimple.com.
dnsimpleprovider/internal/dnsimplex
Package dnsimplex contains utility functions for working with the DNSimple API.
Package dnsimplex contains utility functions for working with the DNSimple API.
internal/providertest
Package providertest contains a standard test suite for provider implementations.
Package providertest contains a standard test suite for provider implementations.
route53provider
Package route53provider provides a driver implementation that advertises DNS-SD service instances on domain names hosted by Amazon Route 53.
Package route53provider provides a driver implementation that advertises DNS-SD service instances on domain names hosted by Amazon Route 53.
Package reconciler implements the reconciliation logic that updates DNS records to match Kubernetes resources.
Package reconciler implements the reconciliation logic that updates DNS records to match Kubernetes resources.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL