cmd

package
v0.0.0-...-c46dd35 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 2026 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Overview

Package cmd provides command-line interface and configuration for the Aether registrar.

Index

Constants

View Source
const DefaultSpireWorkloadSocketPath = "/run/secrets/workload-spiffe-uds/socket"

DefaultSpireWorkloadSocketPath is the default SPIRE CSI-mounted socket path.

Variables

View Source
var Version = "dev"

Version is set at build time via -ldflags (Bazel x_defs).

Functions

func GetCommand

func GetCommand() *cobra.Command

GetCommand returns the main cobra.Command for the registrar.

Types

type RegistrarConfig

type RegistrarConfig struct {
	manager.Config

	// ClusterName is the Kubernetes cluster name. For the etcd backend it is also
	// this registrar's authoritative cluster partition (proposal 006).
	ClusterName string

	// MeshDomain is the DNS-style domain mesh authorities live under
	// (meshconst.DefaultMeshDomain). Used by the cross-cluster config export
	// controller (proposal 026) to resolve backend cluster names <svc>.<meshDomain>.
	MeshDomain string

	// ControlCluster, when set, names the single authorized config-exporting cluster
	// (proposal 026 EM3, Option E control-cluster authority). The config-export
	// controller runs ONLY when this is empty (federated) or equals ClusterName (this
	// IS the hub); spokes in control-cluster mode do not export. Endpoint export (MCS)
	// is unaffected — it stays per-cluster.
	ControlCluster string

	// Region is this registrar's region — the etcd backend's authoritative
	// partition root (proposal 006). Shared by every registrar on the same
	// regional etcd; empty falls back to the etcd backend's default.
	Region string

	// RegistryBackend selects the registry backend ("kubernetes", "dynamodb", or "etcd")
	RegistryBackend string

	// EtcdEndpoints is the list of etcd endpoints when using the etcd backend
	EtcdEndpoints []string

	// PeerEtcd lists peer regions' etcd endpoints for cross-region replication
	// (proposal 006 Phase 2), one entry per peer region:
	// <region>=<endpoint>[,<endpoint>...]. Empty disables replication.
	// Requires the etcd backend and an explicit --region.
	PeerEtcd []string

	// SyncInterval is how often the registrar polls the external registry
	SyncInterval time.Duration

	// EnableMCS turns on Kubernetes Multi-Cluster Services (MCS-API) phase 1
	// (proposals 018 + 006): the leader registrar watches ServiceExport objects
	// and records exports in the origin-partitioned registry, and materializes a
	// ServiceImport (ClusterSetIP) + a local clusterset VIP Service for every
	// service exported anywhere in the clusterset. Requires a registry backend
	// with a cross-cluster plane (etcd); no-ops for kubernetes/dynamodb. Default
	// off — adds nothing (and no ServiceExport/ServiceImport RBAC) unless enabled.
	EnableMCS bool

	// GRPCAddress is the address for the registrar gRPC server
	GRPCAddress string

	// SpireEnabled controls whether the registrar uses SPIRE for mTLS. The trust
	// domain authorized for mTLS peers is resolved from the registrar's own SVID.
	SpireEnabled bool
	// SpireWorkloadSocketPath is the path to the SPIRE Workload API UDS socket
	SpireWorkloadSocketPath string
}

RegistrarConfig holds configuration for the Aether registrar.

The registrar is a control-plane component: its telemetry (OTEL) and SPIRE posture are aether system config, inherited from the aether umbrella chart's globals as flags. MeshConfig is proxy-only and does not apply here. See docs/proposals/015_mesh-config.md.

func NewRegistrarConfig

func NewRegistrarConfig() *RegistrarConfig

NewRegistrarConfig creates a RegistrarConfig with default values.

Jump to

Keyboard shortcuts

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