From 53fa157eb92a24b473082c89876fcbad2f643fb4 Mon Sep 17 00:00:00 2001 From: deviantony Date: Fri, 25 Aug 2023 10:01:55 +0000 Subject: [PATCH] refactor: adapter store refactor --- internal/adapter/adapter.go | 11 ++++++----- internal/adapter/converter/converter.go | 2 +- .../adapter/{ => store}/filesystem/configmap.go | 0 internal/adapter/{ => store}/filesystem/secret.go | 0 internal/adapter/{ => store}/filesystem/store.go | 2 +- internal/adapter/{ => store}/memory/secret.go | 3 ++- .../{types/secret.go => adapter/store/store.go} | 10 +++++++++- internal/api/core/v1/configmaps/get.go | 2 +- internal/api/core/v1/configmaps/patch.go | 2 +- internal/types/configmap.go | 14 -------------- 10 files changed, 21 insertions(+), 25 deletions(-) rename internal/adapter/{ => store}/filesystem/configmap.go (100%) rename internal/adapter/{ => store}/filesystem/secret.go (100%) rename internal/adapter/{ => store}/filesystem/store.go (94%) rename internal/adapter/{ => store}/memory/secret.go (96%) rename internal/{types/secret.go => adapter/store/store.go} (55%) delete mode 100644 internal/types/configmap.go diff --git a/internal/adapter/adapter.go b/internal/adapter/adapter.go index 10b25b8..f40e9ad 100644 --- a/internal/adapter/adapter.go +++ b/internal/adapter/adapter.go @@ -6,8 +6,9 @@ import ( "github.com/docker/docker/client" "github.com/portainer/k2d/internal/adapter/converter" - "github.com/portainer/k2d/internal/adapter/filesystem" - "github.com/portainer/k2d/internal/adapter/memory" + "github.com/portainer/k2d/internal/adapter/store" + "github.com/portainer/k2d/internal/adapter/store/filesystem" + "github.com/portainer/k2d/internal/adapter/store/memory" "github.com/portainer/k2d/internal/types" "go.uber.org/zap" "k8s.io/apimachinery/pkg/runtime" @@ -27,9 +28,9 @@ type ( KubeDockerAdapter struct { cli *client.Client converter *converter.DockerAPIConverter - configMapStore types.ConfigMapStore - secretStore types.SecretStore - registrySecretStore types.SecretStore + configMapStore store.ConfigMapStore + secretStore store.SecretStore + registrySecretStore store.SecretStore logger *zap.SugaredLogger conversionScheme *runtime.Scheme startTime time.Time diff --git a/internal/adapter/converter/converter.go b/internal/adapter/converter/converter.go index 8ed8740..1eb579d 100644 --- a/internal/adapter/converter/converter.go +++ b/internal/adapter/converter/converter.go @@ -4,7 +4,7 @@ package converter import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/network" - "github.com/portainer/k2d/internal/adapter/filesystem" + "github.com/portainer/k2d/internal/adapter/store/filesystem" "github.com/portainer/k2d/internal/types" "github.com/portainer/k2d/pkg/rand" ) diff --git a/internal/adapter/filesystem/configmap.go b/internal/adapter/store/filesystem/configmap.go similarity index 100% rename from internal/adapter/filesystem/configmap.go rename to internal/adapter/store/filesystem/configmap.go diff --git a/internal/adapter/filesystem/secret.go b/internal/adapter/store/filesystem/secret.go similarity index 100% rename from internal/adapter/filesystem/secret.go rename to internal/adapter/store/filesystem/secret.go diff --git a/internal/adapter/filesystem/store.go b/internal/adapter/store/filesystem/store.go similarity index 94% rename from internal/adapter/filesystem/store.go rename to internal/adapter/store/filesystem/store.go index cd65640..1600944 100644 --- a/internal/adapter/filesystem/store.go +++ b/internal/adapter/store/filesystem/store.go @@ -1,4 +1,3 @@ -// Package filesystem provides functionality to interact with the file system. package filesystem import ( @@ -18,6 +17,7 @@ const ( ) // FileSystemStore is a structure that represents a file system store. +// It can be used to store ConfigMaps and Secrets. // It holds paths to the configMap and secret directories, // and a mutex to handle concurrent access. type ( diff --git a/internal/adapter/memory/secret.go b/internal/adapter/store/memory/secret.go similarity index 96% rename from internal/adapter/memory/secret.go rename to internal/adapter/store/memory/secret.go index 09c7c45..907d69c 100644 --- a/internal/adapter/memory/secret.go +++ b/internal/adapter/store/memory/secret.go @@ -14,7 +14,8 @@ type secretData struct { Type string } -// InMemoryStore is a simple in-memory store for secrets +// InMemoryStore is a simple in-memory that can be used +// to store Secrets. type InMemoryStore struct { m sync.RWMutex secretMap map[string]secretData diff --git a/internal/types/secret.go b/internal/adapter/store/store.go similarity index 55% rename from internal/types/secret.go rename to internal/adapter/store/store.go index 7dd02ce..0ca65f0 100644 --- a/internal/types/secret.go +++ b/internal/adapter/store/store.go @@ -1,4 +1,4 @@ -package types +package store import ( corev1 "k8s.io/api/core/v1" @@ -13,3 +13,11 @@ type SecretStore interface { GetSecrets(selector labels.Selector) (core.SecretList, error) StoreSecret(secret *corev1.Secret) error } + +// ConfigMapStore is an interface for interacting with Kubernetes ConfigMaps. +type ConfigMapStore interface { + DeleteConfigMap(configMapName string) error + GetConfigMap(configMapName string) (*core.ConfigMap, error) + GetConfigMaps() (core.ConfigMapList, error) + StoreConfigMap(configMap *corev1.ConfigMap) error +} diff --git a/internal/api/core/v1/configmaps/get.go b/internal/api/core/v1/configmaps/get.go index 6376547..c07fb2a 100644 --- a/internal/api/core/v1/configmaps/get.go +++ b/internal/api/core/v1/configmaps/get.go @@ -6,7 +6,7 @@ import ( "net/http" "github.com/emicklei/go-restful/v3" - "github.com/portainer/k2d/internal/adapter/filesystem" + "github.com/portainer/k2d/internal/adapter/store/filesystem" "github.com/portainer/k2d/internal/api/utils" ) diff --git a/internal/api/core/v1/configmaps/patch.go b/internal/api/core/v1/configmaps/patch.go index 1d81b52..36c1ffe 100644 --- a/internal/api/core/v1/configmaps/patch.go +++ b/internal/api/core/v1/configmaps/patch.go @@ -8,7 +8,7 @@ import ( "net/http" "github.com/emicklei/go-restful/v3" - "github.com/portainer/k2d/internal/adapter/filesystem" + "github.com/portainer/k2d/internal/adapter/store/filesystem" "github.com/portainer/k2d/internal/api/utils" "github.com/portainer/k2d/internal/controller" "github.com/portainer/k2d/internal/types" diff --git a/internal/types/configmap.go b/internal/types/configmap.go deleted file mode 100644 index 4b671ea..0000000 --- a/internal/types/configmap.go +++ /dev/null @@ -1,14 +0,0 @@ -package types - -import ( - corev1 "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/apis/core" -) - -// ConfigMapStore is an interface for interacting with Kubernetes ConfigMaps. -type ConfigMapStore interface { - DeleteConfigMap(configMapName string) error - GetConfigMap(configMapName string) (*core.ConfigMap, error) - GetConfigMaps() (core.ConfigMapList, error) - StoreConfigMap(configMap *corev1.ConfigMap) error -}