Path: blob/main/install/installer/pkg/components/registry-facade/configmap.go
2501 views
// Copyright (c) 2021 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package registryfacade56import (7"fmt"89"github.com/gitpod-io/gitpod/common-go/baseserver"10"github.com/gitpod-io/gitpod/installer/pkg/common"11wsmanagermk2 "github.com/gitpod-io/gitpod/installer/pkg/components/ws-manager-mk2"12"github.com/gitpod-io/gitpod/installer/pkg/config/v1/experimental"13regfac "github.com/gitpod-io/gitpod/registry-facade/api/config"1415corev1 "k8s.io/api/core/v1"16metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"17"k8s.io/apimachinery/pkg/runtime"18)1920func configmap(ctx *common.RenderContext) ([]runtime.Object, error) {21var (22ipfsCache *regfac.IPFSCacheConfig23redisCache *regfac.RedisCacheConfig24)25remoteSpecProviders := []*regfac.RSProvider{26{27Addr: fmt.Sprintf("dns:///ws-manager-mk2:%d", wsmanagermk2.RPCPort),28TLS: ®fac.TLS{29Authority: "/ws-manager-mk2-client-tls-certs/ca.crt",30Certificate: "/ws-manager-mk2-client-tls-certs/tls.crt",31PrivateKey: "/ws-manager-mk2-client-tls-certs/tls.key",32},33},34}35_ = ctx.WithExperimental(func(ucfg *experimental.Config) error {36if ucfg.Workspace == nil {37return nil38}3940if ucfg.Workspace.RegistryFacade.RedisCache.Enabled {41cacheCfg := ucfg.Workspace.RegistryFacade.RedisCache42redisCache = ®fac.RedisCacheConfig{43Enabled: true,44SingleHostAddress: cacheCfg.SingleHostAddress,45Username: cacheCfg.Username,46UseTLS: cacheCfg.UseTLS,47InsecureSkipVerify: cacheCfg.InsecureSkipVerify,48}49}5051if ucfg.Workspace.RegistryFacade.IPFSCache.Enabled {52cacheCfg := ucfg.Workspace.RegistryFacade.IPFSCache53ipfsCache = ®fac.IPFSCacheConfig{54Enabled: true,55IPFSAddr: cacheCfg.IPFSAddr,56}57}5859return nil60})6162rfcfg := regfac.ServiceConfig{63Registry: regfac.Config{64Port: ServicePort,65RemoteSpecProvider: remoteSpecProviders,66TLS: ®fac.TLS{67Certificate: "/mnt/certificates/tls.crt",68PrivateKey: "/mnt/certificates/tls.key",69},70Store: "/mnt/cache/registry",71RequireAuth: false,72StaticLayer: []regfac.StaticLayerCfg{73{74Ref: ctx.ImageName(ctx.Config.Repository, SupervisorImage, ctx.VersionManifest.Components.Workspace.Supervisor.Version),75Type: "image",76},77{78Ref: ctx.ImageName(ctx.Config.Repository, WorkspacekitImage, ctx.VersionManifest.Components.Workspace.Workspacekit.Version),79Type: "image",80},81{82Ref: ctx.ImageName(ctx.Config.Repository, DockerUpImage, ctx.VersionManifest.Components.Workspace.DockerUp.Version),83Type: "image",84},85},86IPFSCache: ipfsCache,87RedisCache: redisCache,88},89AuthCfg: "/mnt/pull-secret/pull-secret.json",90PProfAddr: common.LocalhostAddressFromPort(baseserver.BuiltinDebugPort),91PrometheusAddr: common.LocalhostPrometheusAddr(),92ReadinessProbeAddr: fmt.Sprintf(":%v", ReadinessPort),93}9495fc, err := common.ToJSONString(rfcfg)96if err != nil {97return nil, fmt.Errorf("failed to marshal registry-facade config: %w", err)98}99100return []runtime.Object{101&corev1.ConfigMap{102TypeMeta: common.TypeMetaConfigmap,103ObjectMeta: metav1.ObjectMeta{104Name: Component,105Namespace: ctx.Namespace,106Labels: common.CustomizeLabel(ctx, Component, common.TypeMetaConfigmap),107Annotations: common.CustomizeAnnotation(ctx, Component, common.TypeMetaConfigmap),108},109Data: map[string]string{110"config.json": string(fc),111},112},113}, nil114}115116117