Documentation
¶
Index ¶
- Constants
- type CloudAuthConfig
- type Coordinator
- func (c *Coordinator) Activator() activator.AppActivator
- func (c *Coordinator) CertificateProvider() autotls.CertificateProvider
- func (c *Coordinator) IssueCertificate(name string) (*caauth.ClientCertificate, error)
- func (c *Coordinator) ListenAddress() string
- func (c *Coordinator) LoadAPICert(ctx context.Context) error
- func (c *Coordinator) LoadCA(ctx context.Context) error
- func (c *Coordinator) LocalConfig() (*clientconfig.Config, error)
- func (c *Coordinator) NamedConfig(name string) (*clientconfig.Config, error)
- func (c *Coordinator) ReportStartupStatus(ctx context.Context) error
- func (c *Coordinator) ReportStatus(ctx context.Context) error
- func (c *Coordinator) SandboxPoolManager() *sandboxpool.Manager
- func (c *Coordinator) Server() *rpc.Server
- func (c *Coordinator) ServiceConfig() (*clientconfig.Config, error)
- func (c *Coordinator) Start(ctx context.Context) error
- func (c *Coordinator) Stop()
- type CoordinatorConfig
Constants ¶
View Source
const ( DefaultProjectOwner = "miren.system@miren.dev" DefaultCloudURL = "https://api.miren.cloud" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CloudAuthConfig ¶
type CloudAuthConfig struct {
Enabled bool `json:"enabled" yaml:"enabled"`
CloudURL string `json:"cloud_url" yaml:"cloud_url"` // URL of miren.cloud (default: https://api.miren.cloud)
PrivateKey string `json:"private_key" yaml:"private_key"` // Required: Path to service account private key when enabled
Tags map[string]string `json:"tags" yaml:"tags"` // Tags from registration for RBAC evaluation
ClusterID string `json:"cluster_id" yaml:"cluster_id"` // Cluster ID for status reporting
DNSHostname string `json:"dns_hostname" yaml:"dns_hostname"` // Cloud-provisioned DNS hostname for the cluster
}
CloudAuthConfig contains cloud authentication settings
type Coordinator ¶
type Coordinator struct {
CoordinatorConfig
Log *slog.Logger
// contains filtered or unexported fields
}
func NewCoordinator ¶
func NewCoordinator(log *slog.Logger, cfg CoordinatorConfig) *Coordinator
func (*Coordinator) Activator ¶
func (c *Coordinator) Activator() activator.AppActivator
func (*Coordinator) CertificateProvider ¶
func (c *Coordinator) CertificateProvider() autotls.CertificateProvider
CertificateProvider returns the certificate controller for use by autotls. Returns nil if DNS provider is not configured.
func (*Coordinator) IssueCertificate ¶
func (c *Coordinator) IssueCertificate(name string) (*caauth.ClientCertificate, error)
func (*Coordinator) ListenAddress ¶
func (c *Coordinator) ListenAddress() string
func (*Coordinator) LoadAPICert ¶
func (c *Coordinator) LoadAPICert(ctx context.Context) error
func (*Coordinator) LocalConfig ¶
func (c *Coordinator) LocalConfig() (*clientconfig.Config, error)
func (*Coordinator) NamedConfig ¶
func (c *Coordinator) NamedConfig(name string) (*clientconfig.Config, error)
func (*Coordinator) ReportStartupStatus ¶
func (c *Coordinator) ReportStartupStatus(ctx context.Context) error
ReportStatus reports the current cluster status to miren.cloud
func (*Coordinator) ReportStatus ¶
func (c *Coordinator) ReportStatus(ctx context.Context) error
ReportStatus reports the current cluster status to miren.cloud
func (*Coordinator) SandboxPoolManager ¶
func (c *Coordinator) SandboxPoolManager() *sandboxpool.Manager
func (*Coordinator) Server ¶
func (c *Coordinator) Server() *rpc.Server
func (*Coordinator) ServiceConfig ¶
func (c *Coordinator) ServiceConfig() (*clientconfig.Config, error)
func (*Coordinator) Stop ¶
func (c *Coordinator) Stop()
Stop stops the coordinator and all managed controllers
type CoordinatorConfig ¶
type CoordinatorConfig struct {
Address string `json:"address" yaml:"address"`
EtcdEndpoints []string `json:"etcd_endpoints" yaml:"etcd_endpoints"`
Prefix string `json:"prefix" yaml:"prefix"`
Resolver netresolve.Resolver `json:"resolver" yaml:"resolver"`
TempDir string `json:"temp_dir" yaml:"temp_dir"`
DataPath string `json:"data_path" yaml:"data_path"`
AdditionalNames []string `json:"additional_names" yaml:"additional_names"`
AdditionalIPs []net.IP `json:"additional_ips" yaml:"additional_ips"`
// ACME certificate configuration
AcmeEmail string `json:"acme_email" yaml:"acme_email"`
AcmeDNSProvider string `json:"acme_dns_provider" yaml:"acme_dns_provider"`
// Cloud authentication configuration
CloudAuth CloudAuthConfig `json:"cloud_auth" yaml:"cloud_auth"`
Mem *metrics.MemoryUsage
Cpu *metrics.CPUUsage
HTTP *metrics.HTTPMetrics
Logs *observability.LogReader
LogWriter *observability.PersistentLogWriter
}
Click to show internal directories.
Click to hide internal directories.