From 3768961b788093ae4c4cc1983ed9ec413fd46cb3 Mon Sep 17 00:00:00 2001 From: Gero Posmyk-Leinemann Date: Mon, 11 Apr 2022 10:22:34 +0000 Subject: [PATCH] [installer] open-vsx: configure redis --- .../pkg/components/openvsx-proxy/configmap.go | 10 +++- .../components/openvsx-proxy/statefulset.go | 49 ++++++++++++++++++- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/install/installer/pkg/components/openvsx-proxy/configmap.go b/install/installer/pkg/components/openvsx-proxy/configmap.go index 4de958a49a2a82..aee063a49ed418 100644 --- a/install/installer/pkg/components/openvsx-proxy/configmap.go +++ b/install/installer/pkg/components/openvsx-proxy/configmap.go @@ -17,18 +17,23 @@ import ( ) func configmap(ctx *common.RenderContext) ([]runtime.Object, error) { - // todo(sje): enable redis config imgcfg := openvsx.Config{ LogDebug: false, - CacheDurationRegular: util.Duration(time.Minute), + CacheDurationRegular: util.Duration(time.Minute * 5), CacheDurationBackup: util.Duration(time.Hour * 72), URLUpstream: ctx.Config.OpenVSX.URL, URLLocal: fmt.Sprintf("https://open-vsx.%s", ctx.Config.Domain), MaxIdleConns: 1000, MaxIdleConnsPerHost: 1000, PrometheusAddr: fmt.Sprintf(":%d", PrometheusPort), + RedisAddr: "localhost:6379", } + redisCfg := ` +maxmemory 100mb +maxmemory-policy allkeys-lfu + ` + fc, err := common.ToJSONString(imgcfg) if err != nil { return nil, fmt.Errorf("failed to marshal openvsx config: %w", err) @@ -36,6 +41,7 @@ func configmap(ctx *common.RenderContext) ([]runtime.Object, error) { data := map[string]string{ "config.json": string(fc), + "redis.conf": redisCfg, } return []runtime.Object{ diff --git a/install/installer/pkg/components/openvsx-proxy/statefulset.go b/install/installer/pkg/components/openvsx-proxy/statefulset.go index ecec29b6f8692c..c8088a06690adc 100644 --- a/install/installer/pkg/components/openvsx-proxy/statefulset.go +++ b/install/installer/pkg/components/openvsx-proxy/statefulset.go @@ -99,8 +99,55 @@ func statefulset(ctx *common.RenderContext) ([]runtime.Object, error) { Env: common.MergeEnv( common.DefaultEnv(&ctx.Config), ), - }}, + }, { + Name: "redis", + Image: "redis:6.2", + Command: []string{ + "redis-server", + "/config/redis.conf", + }, + Env: []v1.EnvVar{{ + Name: "MASTER", + Value: "true", + }}, + ImagePullPolicy: "IfNotPresent", + Ports: []v1.ContainerPort{{ + ContainerPort: 6379, + }}, + Resources: v1.ResourceRequirements{ + Requests: v1.ResourceList{ + "cpu": resource.MustParse("1m"), + "memory": resource.MustParse("512Mi"), + }, + }, + VolumeMounts: []v1.VolumeMount{{ + Name: "config", + MountPath: "/config", + }, { + Name: "redis-data", + MountPath: "/data", + }}, + }, + }, + }, + }, + VolumeClaimTemplates: []v1.PersistentVolumeClaim{{ + ObjectMeta: metav1.ObjectMeta{ + Name: Component, + Namespace: ctx.Namespace, + Labels: labels, }, + Spec: v1.PersistentVolumeClaimSpec{ + AccessModes: []v1.PersistentVolumeAccessMode{ + v1.ReadWriteOnce, + }, + Resources: v1.ResourceRequirements{ + Requests: v1.ResourceList{ + "storage": resource.MustParse("8Gi"), + }, + }, + }, + }, }, }, }}, nil