Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (

codebaseApi "github.com/epam/edp-codebase-operator/v2/api/v1"
gitServerMocks "github.com/epam/edp-codebase-operator/v2/pkg/git/mocks"
"github.com/epam/edp-codebase-operator/v2/pkg/platform"
"github.com/epam/edp-codebase-operator/v2/pkg/util"
)

Expand Down Expand Up @@ -67,7 +68,7 @@ func TestPutDeployConfigs_ShouldPass(t *testing.T) {
}
cm := &coreV1.ConfigMap{
ObjectMeta: metaV1.ObjectMeta{
Name: "edp-config",
Name: platform.KrciConfigMap,
Namespace: fakeNamespace,
},
Data: map[string]string{
Expand Down
6 changes: 3 additions & 3 deletions controllers/codebase/service/template/template.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,16 @@ func buildTemplateConfig(ctx context.Context, c client.Client, cb *codebaseApi.C

log.Info("Start creating template config")

us, err := util.GetUserSettings(c, cb.Namespace)
conf, err := platform.GetKrciConfig(ctx, c, cb.Namespace)
if err != nil {
return nil, fmt.Errorf("failed to get user settings settings: %w", err)
return nil, fmt.Errorf("failed to get user setting: %w", err)
}

cf := model.ConfigGoTemplating{
Name: cb.Name,
PlatformType: platform.GetPlatformType(),
Lang: cb.Spec.Lang,
DnsWildcard: us.DnsWildcard,
DnsWildcard: conf.DnsWildcard,
Framework: cb.Spec.Framework,
}

Expand Down
7 changes: 4 additions & 3 deletions controllers/codebase/service/template/template_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client/fake"

codebaseApi "github.com/epam/edp-codebase-operator/v2/api/v1"
"github.com/epam/edp-codebase-operator/v2/pkg/platform"
"github.com/epam/edp-codebase-operator/v2/pkg/util"
)

Expand All @@ -40,7 +41,7 @@ func TestPrepareTemplates_ShouldPass(t *testing.T) {
}
config := &coreV1.ConfigMap{
ObjectMeta: metaV1.ObjectMeta{
Name: "edp-config",
Name: platform.KrciConfigMap,
Namespace: fakeNamespace,
},
}
Expand Down Expand Up @@ -75,7 +76,7 @@ func TestPrepareTemplates_ShouldSkipSonarConfig(t *testing.T) {
}
config := &coreV1.ConfigMap{
ObjectMeta: metaV1.ObjectMeta{
Name: "edp-config",
Name: platform.KrciConfigMap,
Namespace: fakeNamespace,
},
}
Expand Down Expand Up @@ -111,7 +112,7 @@ func TestPrepareTemplates_ShouldFailOnGetProjectUrl(t *testing.T) {
}
config := &coreV1.ConfigMap{
ObjectMeta: metaV1.ObjectMeta{
Name: "edp-config",
Name: platform.KrciConfigMap,
Namespace: fakeNamespace,
},
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"fmt"
"strings"

corev1 "k8s.io/api/core/v1"
k8sErrors "k8s.io/apimachinery/pkg/api/errors"
metaV1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
Expand All @@ -25,11 +24,6 @@ type PutCodebaseImageStream struct {
Client client.Client
}

const (
EdpConfigContainerRegistryHost = "container_registry_host"
EdpConfigContainerRegistrySpace = "container_registry_space"
)

func (h PutCodebaseImageStream) ServeRequest(ctx context.Context, cb *codebaseApi.CodebaseBranch) error {
log := ctrl.LoggerFrom(ctx).WithName("put-codebase-image-stream")

Expand Down Expand Up @@ -89,23 +83,20 @@ func ProcessNameToK8sConvention(name string) string {
}

func (h PutCodebaseImageStream) getDockerRegistryUrl(ctx context.Context, namespace string) (string, error) {
config := &corev1.ConfigMap{}
if err := h.Client.Get(ctx, types.NamespacedName{
Name: platform.EdpConfigMap,
Namespace: namespace,
}, config); err != nil {
return "", fmt.Errorf("failed to get %s config map: %w", platform.EdpConfigMap, err)
config, err := platform.GetKrciConfig(ctx, h.Client, namespace)
if err != nil {
return "", fmt.Errorf("failed to get config: %w", err)
}

if _, ok := config.Data[EdpConfigContainerRegistryHost]; !ok {
return "", fmt.Errorf("%s is not set in %s config map", EdpConfigContainerRegistryHost, platform.EdpConfigMap)
if config.KrciConfigContainerRegistryHost == "" {
return "", fmt.Errorf("%s is not set in %s config map", platform.KrciConfigContainerRegistryHost, platform.KrciConfigMap)
}

if _, ok := config.Data[EdpConfigContainerRegistrySpace]; !ok {
return "", fmt.Errorf("%s is not set in %s config map", EdpConfigContainerRegistrySpace, platform.EdpConfigMap)
if config.KrciConfigContainerRegistrySpace == "" {
return "", fmt.Errorf("%s is not set in %s config map", platform.KrciConfigContainerRegistrySpace, platform.KrciConfigMap)
}

return fmt.Sprintf("%s/%s", config.Data[EdpConfigContainerRegistryHost], config.Data[EdpConfigContainerRegistrySpace]), nil
return fmt.Sprintf("%s/%s", config.KrciConfigContainerRegistryHost, config.KrciConfigContainerRegistrySpace), nil
}

func (h PutCodebaseImageStream) createCodebaseImageStreamIfNotExists(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ func TestPutCodebaseImageStream_ServeRequest(t *testing.T) {
},
&corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
Namespace: "default",
},
Data: map[string]string{
EdpConfigContainerRegistryHost: "test-registry",
EdpConfigContainerRegistrySpace: "test-space",
platform.KrciConfigContainerRegistryHost: "test-registry",
platform.KrciConfigContainerRegistrySpace: "test-space",
},
},
},
Expand Down Expand Up @@ -95,12 +95,12 @@ func TestPutCodebaseImageStream_ServeRequest(t *testing.T) {
},
&corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
Namespace: "default",
},
Data: map[string]string{
EdpConfigContainerRegistryHost: "test-registry",
EdpConfigContainerRegistrySpace: "test-space",
platform.KrciConfigContainerRegistryHost: "test-registry",
platform.KrciConfigContainerRegistrySpace: "test-space",
},
},
},
Expand Down
11 changes: 5 additions & 6 deletions controllers/codebasebranch/codebasebranch_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/reconcile"

codebaseApi "github.com/epam/edp-codebase-operator/v2/api/v1"
"github.com/epam/edp-codebase-operator/v2/controllers/codebasebranch/chain/put_codebase_image_stream"
"github.com/epam/edp-codebase-operator/v2/pkg/codebasebranch"
"github.com/epam/edp-codebase-operator/v2/pkg/platform"
"github.com/epam/edp-codebase-operator/v2/pkg/util"
Expand Down Expand Up @@ -206,14 +205,14 @@ func TestReconcileCodebaseBranch_Reconcile_ShouldPassWithCreatingCIS(t *testing.
Available: true,
},
}
edpConfig := &coreV1.ConfigMap{
config := &coreV1.ConfigMap{
ObjectMeta: metaV1.ObjectMeta{
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
Namespace: "namespace",
},
Data: map[string]string{
put_codebase_image_stream.EdpConfigContainerRegistryHost: "stub-url",
put_codebase_image_stream.EdpConfigContainerRegistrySpace: "stub-space",
platform.KrciConfigContainerRegistryHost: "stub-url",
platform.KrciConfigContainerRegistrySpace: "stub-space",
},
}
s := &coreV1.Secret{
Expand All @@ -234,7 +233,7 @@ func TestReconcileCodebaseBranch_Reconcile_ShouldPassWithCreatingCIS(t *testing.

fakeCl := fake.NewClientBuilder().
WithScheme(scheme).
WithRuntimeObjects(c, cb, s, cis, edpConfig).
WithRuntimeObjects(c, cb, s, cis, config).
WithStatusSubresource(cb).
Build()

Expand Down
8 changes: 4 additions & 4 deletions controllers/gitserver/create_event_listener.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ func (h *CreateEventListener) createIngress(ctx context.Context, gitServer *code
return fmt.Errorf("failed to get Ingress: %w", err)
}

edpConf, err := platform.GetEdpConfig(ctx, h.k8sClient, gitServer.Namespace)
config, err := platform.GetKrciConfig(ctx, h.k8sClient, gitServer.Namespace)
if err != nil {
return fmt.Errorf("failed to get dnsWildcard: %w", err)
}
Expand All @@ -176,7 +176,7 @@ func (h *CreateEventListener) createIngress(ctx context.Context, gitServer *code
"el-%s-%s.%s",
gitServer.Name,
gitServer.Namespace,
edpConf.DnsWildcard,
config.DnsWildcard,
),
IngressRuleValue: networkingv1.IngressRuleValue{
HTTP: &networkingv1.HTTPIngressRuleValue{
Expand Down Expand Up @@ -236,7 +236,7 @@ func (h *CreateEventListener) createRoute(ctx context.Context, gitServer *codeba
return fmt.Errorf("failed to get Route: %w", err)
}

edpConf, err := platform.GetEdpConfig(ctx, h.k8sClient, gitServer.Namespace)
config, err := platform.GetKrciConfig(ctx, h.k8sClient, gitServer.Namespace)
if err != nil {
return fmt.Errorf("failed to get dnsWildcard: %w", err)
}
Expand All @@ -253,7 +253,7 @@ func (h *CreateEventListener) createRoute(ctx context.Context, gitServer *codeba
"el-%s-%s.%s",
gitServer.Name,
gitServer.Namespace,
edpConf.DnsWildcard,
config.DnsWildcard,
),
TLS: &routeApi.TLSConfig{
InsecureEdgeTerminationPolicy: routeApi.InsecureEdgeTerminationPolicyRedirect,
Expand Down
12 changes: 6 additions & 6 deletions controllers/gitserver/create_event_listener_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ func TestCreateEventListener_ServeRequest(t *testing.T) {
WithObjects(&corev1.ConfigMap{
ObjectMeta: controllerruntime.ObjectMeta{
Namespace: "default",
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
},
}).
Build()
Expand Down Expand Up @@ -117,7 +117,7 @@ func TestCreateEventListener_ServeRequest(t *testing.T) {
&corev1.ConfigMap{
ObjectMeta: controllerruntime.ObjectMeta{
Namespace: "default",
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
},
},
&networkingv1.Ingress{
Expand Down Expand Up @@ -166,7 +166,7 @@ func TestCreateEventListener_ServeRequest(t *testing.T) {
&corev1.ConfigMap{
ObjectMeta: controllerruntime.ObjectMeta{
Namespace: "default",
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
},
},
el,
Expand Down Expand Up @@ -205,7 +205,7 @@ func TestCreateEventListener_ServeRequest(t *testing.T) {
WithObjects(&corev1.ConfigMap{
ObjectMeta: controllerruntime.ObjectMeta{
Namespace: "default",
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
},
}).
Build()
Expand Down Expand Up @@ -243,7 +243,7 @@ func TestCreateEventListener_ServeRequest(t *testing.T) {
&corev1.ConfigMap{
ObjectMeta: controllerruntime.ObjectMeta{
Namespace: "default",
Name: platform.EdpConfigMap,
Name: platform.KrciConfigMap,
},
},
&routeApi.Route{
Expand Down Expand Up @@ -274,7 +274,7 @@ func TestCreateEventListener_ServeRequest(t *testing.T) {
},
},
{
name: "edpConfig not found",
name: "config not found",
gitServer: &codebaseApi.GitServer{
ObjectMeta: controllerruntime.ObjectMeta{
Name: "test-git-server",
Expand Down
66 changes: 66 additions & 0 deletions pkg/platform/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package platform

import (
"context"
"fmt"

corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
"sigs.k8s.io/controller-runtime/pkg/client"
)

const (
KrciConfigMap = "krci-config"
KrciConfigContainerRegistryHost = "container_registry_host"
KrciConfigContainerRegistrySpace = "container_registry_space"
)

type KrciConfig struct {
DnsWildcard string
ContainerRegistryType string
EdpVersion string
KrciConfigContainerRegistryHost string
KrciConfigContainerRegistrySpace string
}

func GetKrciConfig(ctx context.Context, k8sClient client.Client, namespace string) (*KrciConfig, error) {
config := &corev1.ConfigMap{}
if err := k8sClient.Get(ctx, client.ObjectKey{
Namespace: namespace,
Name: KrciConfigMap,
}, config); err != nil {
// backward compatibility for edp-config config map.
if errors.IsNotFound(err) {
return getEdpConfig(ctx, k8sClient, namespace)
}

return nil, fmt.Errorf("failed to get %s: %w", KrciConfigMap, err)
}

return mapConfigToKrciConfig(config), nil
}

// getEdpConfig is backward compatibility for edp-config config map.
// Deprecated: use GetKrciConfig instead.
// TODO: remove this function after all instances will be migrated to krci-config.
func getEdpConfig(ctx context.Context, k8sClient client.Client, namespace string) (*KrciConfig, error) {
config := &corev1.ConfigMap{}
if err := k8sClient.Get(ctx, client.ObjectKey{
Namespace: namespace,
Name: "edp-config",
}, config); err != nil {
return nil, fmt.Errorf("failed to get edp-config: %w", err)
}

return mapConfigToKrciConfig(config), nil
}

func mapConfigToKrciConfig(config *corev1.ConfigMap) *KrciConfig {
return &KrciConfig{
DnsWildcard: config.Data["dns_wildcard"],
ContainerRegistryType: config.Data["container_registry_type"],
EdpVersion: config.Data["edp_version"],
KrciConfigContainerRegistryHost: config.Data[KrciConfigContainerRegistryHost],
KrciConfigContainerRegistrySpace: config.Data[KrciConfigContainerRegistrySpace],
}
}
Loading