...
1 package mapper
2
3 import (
4 "reflect"
5 "strings"
6
7 corev1 "k8s.io/api/core/v1"
8 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9
10 "edge-infra.dev/pkg/edge/api/graph/model"
11 "edge-infra.dev/pkg/edge/constants"
12 )
13
14 const (
15 registriesKey = "REGISTRIES"
16 mirrorRegistriesKey = "MIRROR_REGISTRIES"
17
18 edgeRegistry = "https://us-east1-docker.pkg.dev"
19 localRegistry30020 = "http://127.0.0.1:30020"
20 localRegistry30021 = "http://127.0.0.1:30021"
21 )
22
23 func CreateSpegelConfigMap(artifactRegistries []*model.ArtifactRegistry) *corev1.ConfigMap {
24 urls := urlsFromArtifactRegistries(artifactRegistries)
25 return spegelConfig(urls)
26 }
27
28 func urlsFromArtifactRegistries(artifactRegistries []*model.ArtifactRegistry) []string {
29 urls := []string{}
30 for _, artifactRegistry := range artifactRegistries {
31 urls = append(urls, artifactRegistry.URL)
32 }
33 return urls
34 }
35
36 func spegelConfig(urls []string) *corev1.ConfigMap {
37 return &corev1.ConfigMap{
38 TypeMeta: metav1.TypeMeta{
39 Kind: reflect.TypeOf(corev1.ConfigMap{}).Name(),
40 APIVersion: corev1.SchemeGroupVersion.String(),
41 },
42 ObjectMeta: metav1.ObjectMeta{
43 Name: constants.SpegelConfig,
44 Namespace: constants.SpegelNamespace,
45 },
46 Data: map[string]string{
47 registriesKey: registriesValue(urls),
48 mirrorRegistriesKey: mirrorRegistriesValue(urls),
49 },
50 }
51 }
52
53 func registriesValue(urls []string) string {
54 registries := []string{
55 edgeRegistry,
56 }
57 registries = append(registries, urls...)
58 return strings.Join(registries, ",")
59 }
60
61 func mirrorRegistriesValue(urls []string) string {
62 mirrorRegistries := []string{
63 localRegistry30020,
64 localRegistry30021,
65 edgeRegistry,
66 }
67 mirrorRegistries = append(mirrorRegistries, urls...)
68 return strings.Join(mirrorRegistries, ",")
69 }
70
View as plain text