From 9964d75d3625a5748a7bb22caee8c191287f7b56 Mon Sep 17 00:00:00 2001 From: Daniel Binyamin Date: Tue, 3 Feb 2026 16:33:45 +0200 Subject: [PATCH 1/2] add remoteSessionClient.recordings.size config --- internal/local/chart/v3.go | 15 +++++++++++ internal/local/config/v1/v1.go | 49 +++++++++++++++++++++++++--------- 2 files changed, 51 insertions(+), 13 deletions(-) diff --git a/internal/local/chart/v3.go b/internal/local/chart/v3.go index ed29d26..fdfb8df 100644 --- a/internal/local/chart/v3.go +++ b/internal/local/chart/v3.go @@ -297,6 +297,20 @@ func configureCore(configuration *config_v1.Configuration) (yamlMap, error) { return cfg, err } +// configureRemoteSession sets up remote session client configuration. +func configureRemoteSession(configuration *config_v1.Configuration) (yamlMap, error) { + cfg := make(yamlMap) + var err error + + if configuration.RemoteSession.Recordings.Size != "" { + err = errors.Join(err, + writeMapEntry(cfg, "remoteSessionClient.recordings.size", configuration.RemoteSession.Recordings.Size), + ) + } + + return cfg, err +} + func init() { valuesGeneratorV3 = &yamlGenerator{ visitors: map[string]configVisitor{}, @@ -309,6 +323,7 @@ func init() { valuesGeneratorV3.MustAddVisitor("resources", configureResources) valuesGeneratorV3.MustAddVisitor("forwarding", configureForwarding) valuesGeneratorV3.MustAddVisitor("lwh", configureLWH) + valuesGeneratorV3.MustAddVisitor("remoteSession", configureRemoteSession) valuesGeneratorV3.MustAddVisitor("overrides", configureOverrides) } diff --git a/internal/local/config/v1/v1.go b/internal/local/config/v1/v1.go index 2af9af8..4fbcce1 100644 --- a/internal/local/config/v1/v1.go +++ b/internal/local/config/v1/v1.go @@ -1,5 +1,11 @@ package config_v1 +import ( + "fmt" + + "k8s.io/apimachinery/pkg/api/resource" +) + type TLSConfig struct { Cert string `json:"cert,omitempty"` // ingress tls cert Key string `json:"key,omitempty"` // ingress tls key @@ -61,24 +67,41 @@ type GithubSSOConfig struct { EmailDomain string `json:"emailDomain,omitempty"` } +// RecordingsConfig configures the remote session recordings storage. +type RecordingsConfig struct { + Size string `json:"size,omitempty"` // PVC size (e.g., "50Gi") +} + +// RemoteSessionConfig configures the remote session client. +type RemoteSessionConfig struct { + Recordings RecordingsConfig `json:"recordings,omitempty"` +} + // Configuration flat options for the chart, pointers are used to distinguish between empty and unset values type Configuration struct { - Autoscaling *bool `json:"autoscaling,omitempty"` - HelmOverrides map[string]any `json:"helmOverrides,omitempty"` - SMTP SMTPConfig `json:"smtp,omitempty"` - GithubSSO GithubSSOConfig `json:"githubSSO"` - TLS TLSConfig `json:"tls,omitempty"` - IPv4 string `json:"ip,omitempty"` - IPv6 string `json:"ip6,omitempty"` - Host string `json:"host,omitempty"` - Proxy ProxyConfig `json:"proxy,omitempty"` - Forwarding ForwardingConfig `json:"forwarding,omitempty"` - K3SArgs []string `json:"k3sArgs,omitempty"` - RetentionDays RetentionConfig `json:"retentionDays,omitempty"` - WekaNodesServed int `json:"wekaNodesMonitored,omitempty"` + Autoscaling *bool `json:"autoscaling,omitempty"` + HelmOverrides map[string]any `json:"helmOverrides,omitempty"` + SMTP SMTPConfig `json:"smtp,omitempty"` + GithubSSO GithubSSOConfig `json:"githubSSO"` + TLS TLSConfig `json:"tls,omitempty"` + IPv4 string `json:"ip,omitempty"` + IPv6 string `json:"ip6,omitempty"` + Host string `json:"host,omitempty"` + Proxy ProxyConfig `json:"proxy,omitempty"` + Forwarding ForwardingConfig `json:"forwarding,omitempty"` + K3SArgs []string `json:"k3sArgs,omitempty"` + RetentionDays RetentionConfig `json:"retentionDays,omitempty"` + WekaNodesServed int `json:"wekaNodesMonitored,omitempty"` + RemoteSession RemoteSessionConfig `json:"remoteSession,omitempty"` } func (c Configuration) Validate() error { + if c.RemoteSession.Recordings.Size != "" { + if _, err := resource.ParseQuantity(c.RemoteSession.Recordings.Size); err != nil { + return fmt.Errorf("invalid remoteSession.recordings.size %q: use Kubernetes quantity format (e.g., 10Gi, 500Mi)", c.RemoteSession.Recordings.Size) + } + } + return nil } From 5c3344cd44d9071af1a408e84f980c4017ecd90b Mon Sep 17 00:00:00 2001 From: Daniel Binyamin Date: Tue, 3 Feb 2026 16:42:19 +0200 Subject: [PATCH 2/2] pre-commit --- internal/local/config/v1/v1.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/local/config/v1/v1.go b/internal/local/config/v1/v1.go index 4fbcce1..5a23e24 100644 --- a/internal/local/config/v1/v1.go +++ b/internal/local/config/v1/v1.go @@ -79,26 +79,29 @@ type RemoteSessionConfig struct { // Configuration flat options for the chart, pointers are used to distinguish between empty and unset values type Configuration struct { - Autoscaling *bool `json:"autoscaling,omitempty"` HelmOverrides map[string]any `json:"helmOverrides,omitempty"` - SMTP SMTPConfig `json:"smtp,omitempty"` + Autoscaling *bool `json:"autoscaling,omitempty"` GithubSSO GithubSSOConfig `json:"githubSSO"` TLS TLSConfig `json:"tls,omitempty"` - IPv4 string `json:"ip,omitempty"` IPv6 string `json:"ip6,omitempty"` + IPv4 string `json:"ip,omitempty"` Host string `json:"host,omitempty"` + RemoteSession RemoteSessionConfig `json:"remoteSession,omitempty"` + SMTP SMTPConfig `json:"smtp,omitempty"` Proxy ProxyConfig `json:"proxy,omitempty"` Forwarding ForwardingConfig `json:"forwarding,omitempty"` K3SArgs []string `json:"k3sArgs,omitempty"` RetentionDays RetentionConfig `json:"retentionDays,omitempty"` WekaNodesServed int `json:"wekaNodesMonitored,omitempty"` - RemoteSession RemoteSessionConfig `json:"remoteSession,omitempty"` } func (c Configuration) Validate() error { if c.RemoteSession.Recordings.Size != "" { if _, err := resource.ParseQuantity(c.RemoteSession.Recordings.Size); err != nil { - return fmt.Errorf("invalid remoteSession.recordings.size %q: use Kubernetes quantity format (e.g., 10Gi, 500Mi)", c.RemoteSession.Recordings.Size) + return fmt.Errorf( + "invalid remoteSession.recordings.size %q: use Kubernetes quantity format (e.g., 10Gi, 500Mi)", + c.RemoteSession.Recordings.Size, + ) } }