From 4ad0b69dd0c7468a07a3afdf9dd9c9a3227bcd92 Mon Sep 17 00:00:00 2001 From: Avi Zimmerman Date: Thu, 3 Aug 2023 21:10:36 +0300 Subject: [PATCH] tidy: collect builtin plugins to new builtins package --- pkg/cmd/ctlcmd/config/config.go | 4 +-- pkg/mesh/mesh_join.go | 4 +-- .../{ => builtins}/basicauth/basicauth.go | 0 pkg/plugins/{ => builtins}/basicauth/creds.go | 0 pkg/plugins/builtins/builtins.go | 36 +++++++++++++++++++ pkg/plugins/{ => builtins}/ipam/plugin.go | 0 pkg/plugins/{ => builtins}/ldap/creds.go | 0 pkg/plugins/{ => builtins}/ldap/ldap.go | 0 pkg/plugins/{ => builtins}/mtls/mtls.go | 0 pkg/plugins/plugins.go | 12 ++----- pkg/services/options.go | 4 +-- 11 files changed, 44 insertions(+), 16 deletions(-) rename pkg/plugins/{ => builtins}/basicauth/basicauth.go (100%) rename pkg/plugins/{ => builtins}/basicauth/creds.go (100%) create mode 100644 pkg/plugins/builtins/builtins.go rename pkg/plugins/{ => builtins}/ipam/plugin.go (100%) rename pkg/plugins/{ => builtins}/ldap/creds.go (100%) rename pkg/plugins/{ => builtins}/ldap/ldap.go (100%) rename pkg/plugins/{ => builtins}/mtls/mtls.go (100%) diff --git a/pkg/cmd/ctlcmd/config/config.go b/pkg/cmd/ctlcmd/config/config.go index 1716cb645..bc0c48426 100644 --- a/pkg/cmd/ctlcmd/config/config.go +++ b/pkg/cmd/ctlcmd/config/config.go @@ -36,8 +36,8 @@ import ( "google.golang.org/grpc/credentials/insecure" "gopkg.in/yaml.v3" - "github.com/webmeshproj/webmesh/pkg/plugins/basicauth" - "github.com/webmeshproj/webmesh/pkg/plugins/ldap" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/basicauth" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/ldap" "github.com/webmeshproj/webmesh/pkg/util" ) diff --git a/pkg/mesh/mesh_join.go b/pkg/mesh/mesh_join.go index 73b18c9c0..95cca1d49 100644 --- a/pkg/mesh/mesh_join.go +++ b/pkg/mesh/mesh_join.go @@ -31,8 +31,8 @@ import ( "github.com/webmeshproj/webmesh/pkg/context" meshnet "github.com/webmeshproj/webmesh/pkg/net" - "github.com/webmeshproj/webmesh/pkg/plugins/basicauth" - "github.com/webmeshproj/webmesh/pkg/plugins/ldap" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/basicauth" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/ldap" ) func (s *meshStore) joinWithPeerDiscovery(ctx context.Context, features []v1.Feature) error { diff --git a/pkg/plugins/basicauth/basicauth.go b/pkg/plugins/builtins/basicauth/basicauth.go similarity index 100% rename from pkg/plugins/basicauth/basicauth.go rename to pkg/plugins/builtins/basicauth/basicauth.go diff --git a/pkg/plugins/basicauth/creds.go b/pkg/plugins/builtins/basicauth/creds.go similarity index 100% rename from pkg/plugins/basicauth/creds.go rename to pkg/plugins/builtins/basicauth/creds.go diff --git a/pkg/plugins/builtins/builtins.go b/pkg/plugins/builtins/builtins.go new file mode 100644 index 000000000..11816040b --- /dev/null +++ b/pkg/plugins/builtins/builtins.go @@ -0,0 +1,36 @@ +/* +Copyright 2023 Avi Zimmerman + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package builtins contains the built-in plugin implementations. +package builtins + +import ( + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/basicauth" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/ipam" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/ldap" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/mtls" + "github.com/webmeshproj/webmesh/pkg/plugins/clients" +) + +// NewPluginMap returns a map of the built-in plugins. +func NewPluginMap() map[string]clients.PluginClient { + return map[string]clients.PluginClient{ + "ipam": clients.NewInProcessClient(&ipam.Plugin{}), + "mtls": clients.NewInProcessClient(&mtls.Plugin{}), + "basic-auth": clients.NewInProcessClient(&basicauth.Plugin{}), + "ldap": clients.NewInProcessClient(&ldap.Plugin{}), + } +} diff --git a/pkg/plugins/ipam/plugin.go b/pkg/plugins/builtins/ipam/plugin.go similarity index 100% rename from pkg/plugins/ipam/plugin.go rename to pkg/plugins/builtins/ipam/plugin.go diff --git a/pkg/plugins/ldap/creds.go b/pkg/plugins/builtins/ldap/creds.go similarity index 100% rename from pkg/plugins/ldap/creds.go rename to pkg/plugins/builtins/ldap/creds.go diff --git a/pkg/plugins/ldap/ldap.go b/pkg/plugins/builtins/ldap/ldap.go similarity index 100% rename from pkg/plugins/ldap/ldap.go rename to pkg/plugins/builtins/ldap/ldap.go diff --git a/pkg/plugins/mtls/mtls.go b/pkg/plugins/builtins/mtls/mtls.go similarity index 100% rename from pkg/plugins/mtls/mtls.go rename to pkg/plugins/builtins/mtls/mtls.go diff --git a/pkg/plugins/plugins.go b/pkg/plugins/plugins.go index e32f0e853..042483911 100644 --- a/pkg/plugins/plugins.go +++ b/pkg/plugins/plugins.go @@ -28,11 +28,8 @@ import ( "google.golang.org/protobuf/types/known/structpb" "github.com/webmeshproj/webmesh/pkg/context" - "github.com/webmeshproj/webmesh/pkg/plugins/basicauth" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins" "github.com/webmeshproj/webmesh/pkg/plugins/clients" - "github.com/webmeshproj/webmesh/pkg/plugins/ipam" - "github.com/webmeshproj/webmesh/pkg/plugins/ldap" - "github.com/webmeshproj/webmesh/pkg/plugins/mtls" ) var ( @@ -43,12 +40,7 @@ var ( // NewManager creates a new plugin manager. func NewManager(ctx context.Context, opts *Options) (Manager, error) { - builtIns := map[string]clients.PluginClient{ - "ipam": clients.NewInProcessClient(&ipam.Plugin{}), - "mtls": clients.NewInProcessClient(&mtls.Plugin{}), - "basic-auth": clients.NewInProcessClient(&basicauth.Plugin{}), - "ldap": clients.NewInProcessClient(&ldap.Plugin{}), - } + builtIns := builtins.NewPluginMap() var auth, ipamv4, ipamv6 clients.PluginClient allPlugins := make(map[string]clients.PluginClient) stores := make([]clients.PluginClient, 0) diff --git a/pkg/services/options.go b/pkg/services/options.go index 5fdd257b8..c09b77e3c 100644 --- a/pkg/services/options.go +++ b/pkg/services/options.go @@ -36,8 +36,8 @@ import ( "github.com/webmeshproj/webmesh/pkg/context" "github.com/webmeshproj/webmesh/pkg/mesh" - "github.com/webmeshproj/webmesh/pkg/plugins/basicauth" - "github.com/webmeshproj/webmesh/pkg/plugins/ldap" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/basicauth" + "github.com/webmeshproj/webmesh/pkg/plugins/builtins/ldap" "github.com/webmeshproj/webmesh/pkg/services/dashboard" "github.com/webmeshproj/webmesh/pkg/services/leaderproxy" "github.com/webmeshproj/webmesh/pkg/util"