config

package
v0.0.0-...-6da7b20 Latest Latest
Warning

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

Go to latest
Published: May 16, 2024 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultControllerName is a unique identifier which indicates this operator's name.
	DefaultControllerName = "l7mp.io/livekit-operator"

	// DefaultLabelKeyForConfigMap is a label key
	DefaultLabelKeyForConfigMap = "l7mp.io/livekit-config"

	// DefaultLabelValueForConfigMap is a label value
	DefaultLabelValueForConfigMap = "livekitmesh-config"

	// DefaultNamespaceForConfigMap is the default namespaced name of base livekit config map
	DefaultNamespaceForConfigMap = "default"

	// DefaultNameForConfigMap is the default namespaced name of base livekit config map
	DefaultNameForConfigMap = "default-livekit-config"

	// OwnedByLabelKey is the name of the label that is used to mark resources (Services,
	// ConfigMaps, and Deployments) dynamically created and maintained by the operator. Note
	// that the Deployments and Services created by the operator will have both the AppLabelKey
	// and the OwnedByLabelKey labels set.
	OwnedByLabelKey = "livekit.stunner.l7mp.io/owned-by"

	// OwnedByLabelValue is the value of OwnedByLabelKey to indicate that a resource is
	// maintained by the operator.
	OwnedByLabelValue = "livekitmesh-operator"

	// RelatedLiveKitMeshKey is the name of the label that is used to mark resources (Services,
	// ConfigMaps, and Deployments) dynamically created and maintained by the operator. Note
	// that the Deployments and Services created by the operator will have both the AppLabelKey
	// and the OwnedByLabelKey labels set.
	RelatedLiveKitMeshKey = "livekit.stunner.l7mp.io/livekit-mesh-name"

	// RelatedComponent is the name of the label that is used to determine which component this resource belongs to
	RelatedComponent = "livekit.stunner.l7mp.io/mesh-component"

	// DefaultLiveKitConfigFileName is the key of the livekit config in the config map data field
	DefaultLiveKitConfigFileName = "config.yaml"

	// DefaultClusterIssuerSecretApiTokenKey is the default api token key in the cluster issuer's secret
	DefaultClusterIssuerSecretApiTokenKey = "api-token"

	// DefaultConfigMapResourceVersionKey is the key of the pod template annotation that will trigger the rollout restart
	// on the LiveKit pods whenever their corresponding config maps has changed
	DefaultConfigMapResourceVersionKey = "livekit.l7mp.io/config-map-resource-version"

	// RelatedConfigMapKey is the key of the annotation for the related config map for a LiveKit deployment
	RelatedConfigMapKey = "livekit.l7mp.io/related-config-map"

	// HostnameAnnotationKey is the key of the annotation which defines the host name for the ExternalDNS controller to set
	HostnameAnnotationKey = "external-dns.alpha.kubernetes.io/hostname"

	// ExternalDNSLabelKey is the key of the label for the ExternalDNS deployment
	ExternalDNSLabelKey = "livekit.l7mp.io/app"
)
View Source
const (
	// StatusNone Component is not present.
	StatusNone = "NONE"
	// StatusUpdating Component is being updated to a different version.
	StatusUpdating = "UPDATING"
	// StatusReconciling Controller has started but not yet completed reconciliation loop for the component.
	StatusReconciling = "RECONCILING"
	// StatusHealthy Component is healthy.
	StatusHealthy = "HEALTHY"
	// StatusError Component is in an error state.
	StatusError = "ERROR"
	// StatusActionRequired Action is needed from the user for reconciliation to proceed
	StatusActionRequired = "ACTION_REQUIRED"
)

Statuses for the LiveKitMesh

View Source
const (
	ComponentLiveKit           = "LIVEKIT"
	ComponentIngress           = "INGRESS"
	ComponentEgress            = "EGRESS"
	ComponentApplicationExpose = "APPLICATION_EXPOSE"
	ComponentMonitoring        = "MONITORING"
	ComponentStunner           = "STUNNER"
)
View Source
const (
	IssuerCloudFlare   = "cloudflare"
	IssuerCloudDNS     = "clouddns"
	IssuerRoute53      = "route53"
	IssuerDigitalOcean = "digitalocean"
	IssuerAzureDNS     = "azuredns"
)

Issuer challenge provider types

View Source
const (

	// InstallStunnerGatewayChart is the default value to install the StunnerGatewayChart
	InstallStunnerGatewayChart = true

	// StunnerGatewayChartNamespace is the default namespace where the STUNner chart should be deployed
	StunnerGatewayChartNamespace = "stunner-gateway-system"

	// InstallEnvoyGatewayChart is the default value to install the EnvoyGatewayChart
	InstallEnvoyGatewayChart = true

	// EnvoyGatewayChartNamespace is the default namespace where the Envoy chart should be deployed
	EnvoyGatewayChartNamespace = "envoy-gateway-system"

	// InstallCertManagerChart is the default value to install the InstallCertManagerChart
	InstallCertManagerChart = true

	// CertManagerChartNamespace is the default namespace where the Cert-Manager chart should be deployed
	CertManagerChartNamespace = "cert-manager"
)

Helm default values

Variables

This section is empty.

Functions

This section is empty.

Types

type Azure

type Azure struct {
	AccountName   *string `yaml:"account_name" json:"account_name"`
	AccountKey    *string `yaml:"account_key" json:"account_key"`
	ContainerName *string `yaml:"container_name" json:"container_name"`
}

type CPUCost

type CPUCost struct {
	RTMPCPUCost                  *int `yaml:"rtmp_cpu_cost" json:"rtmp_cpu_cost"`
	WHIPCPUCost                  *int `yaml:"whip_cpu_cost" json:"whip_cpu_cost"`
	WHIPBypassTranscodingCPUCost *int `yaml:"whip_bypass_transcoding_cpu_cost" json:"whip_bypass_transcoding_cpu_cost"`
}

type EgressConfig

type EgressConfig struct {
	APIKey         *string          `yaml:"api_key" json:"api_key"`
	APISecret      *string          `yaml:"api_secret" json:"api_secret"`
	WSURL          *string          `yaml:"ws_url" json:"ws_url"`
	Redis          *lkstnv1a1.Redis `yaml:"redis" json:"redis"`
	HealthPort     *int             `yaml:"health_port" json:"health_port"`
	TemplatePort   *int             `yaml:"template_port" json:"template_port"`
	PrometheusPort *int             `yaml:"prometheus_port" json:"prometheus_port"`
	LogLevel       *string          `yaml:"log_level" json:"log_level"`
	//TemplateBase
	//EnableChromeSandbox
	Insecure *bool  `yaml:"insecure" json:"insecure"`
	S3       *S3    `yaml:"s3" json:"s3"`
	Azure    *Azure `yaml:"azure" json:"azure"`
	Gcp      *Gcp   `yaml:"gcp" json:"gcp"`
}

func ConvertEgressConfig

func ConvertEgressConfig(config lkstnv1a1.EgressConfig) *EgressConfig

type Gcp

type Gcp struct {
	CredentialsJson *string `yaml:"credentials_json" json:"credentials_json"`
	Bucket          *string `yaml:"bucket" json:"bucket"`
}

type IngressAddresses

type IngressAddresses struct {
	RtmpBaseUrl *string `json:"rtmp_base_url,omitempty"`
	WhipBaseUrl *string `json:"whip_base_url,omitempty"`
}

type IngressConfig

type IngressConfig struct {
	APIKey         *string          `yaml:"api_key" json:"api_key"`
	APISecret      *string          `yaml:"api_secret" json:"api_secret"`
	WSURL          *string          `yaml:"ws_url" json:"ws_url"`
	Redis          *lkstnv1a1.Redis `yaml:"redis" json:"redis"`
	CPUCost        *CPUCost         `yaml:"cpu_cost" json:"cpu_cost"`
	HealthPort     *int             `yaml:"health_port" json:"health_port"`
	PrometheusPort *int             `yaml:"prometheus_port" json:"prometheus_port"`
	RTMPPort       *int             `yaml:"rtmp_port" json:"rtmp_port"`
	WHIPPort       *int             `yaml:"whip_port" json:"whip_port"`
	HTTPRelayPort  *int             `yaml:"http_relay_port" json:"http_relay_port"`
	Logging        *Logging         `yaml:"logging" json:"logging"`
}

IngressConfig This ingressConfig is used to create the configmap for ingress

func ConvertIngressConfig

func ConvertIngressConfig(config lkstnv1a1.IngressConfig) *IngressConfig

type LiveKitConfig

type LiveKitConfig struct {
	Keys             *map[string]string `yaml:"keys" json:"keys,omitempty"`
	LogLevel         *string            `yaml:"log_level" json:"log_level,omitempty"`
	Port             *int               `yaml:"port" json:"port,omitempty"`
	Redis            *lkstnv1a1.Redis   `yaml:"redis" json:"redis,omitempty"`
	Rtc              *Rtc               `yaml:"rtc" json:"rtc,omitempty"`
	IngressAddresses *IngressAddresses  `yaml:"ingress" json:"ingress,omitempty"`
}

func ConvertServerConfig

func ConvertServerConfig(config lkstnv1a1.LiveKitConfig) *LiveKitConfig

type Logging

type Logging struct {
	Level *string `yaml:"level" json:"level"`
}

type Rtc

type Rtc struct {
	PortRangeEnd   *int         `yaml:"port_range_end" json:"port_range_end,omitempty"`
	PortRangeStart *int         `yaml:"port_range_start" json:"port_range_start,omitempty"`
	TcpPort        *int         `yaml:"tcp_port" json:"tcp_port,omitempty"`
	StunServers    []string     `yaml:"stun_servers" json:"stun_servers,omitempty"`
	TurnServers    []TurnServer `yaml:"turn_servers" json:"turn_servers,omitempty"`
	// +kubebuilder:default=false
	// +optional
	UseExternalIp *bool `yaml:"use_external_ip" json:"use_external_ip,omitempty"`
}

type S3

type S3 struct {
	AccessKey *string `yaml:"access_key" json:"access_key"`
	Secret    *string `yaml:"secret" json:"secret"`
	Region    *string `yaml:"region" json:"region"`
	Endpoint  *string `yaml:"endpoint" json:"endpoint"`
	Bucket    *string `yaml:"bucket" json:"bucket"`
}

type TurnServer

type TurnServer struct {
	Credential *string `yaml:"credential" json:"credential,omitempty"`
	Host       *string `yaml:"host" json:"host,omitempty"`
	Port       *int    `yaml:"port" json:"port,omitempty"`
	Protocol   *string `yaml:"protocol" json:"protocol,omitempty"`
	Username   *string `yaml:"username" json:"username,omitempty"`
	AuthURI    *string `yaml:"uri,omitempty" json:"uri,omitempty"`
}

Jump to

Keyboard shortcuts

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