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 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 IngressAddresses ¶
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 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 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"` }
Click to show internal directories.
Click to hide internal directories.