From 281f217dccbed9314534390ab4743c52f704bfca Mon Sep 17 00:00:00 2001 From: Louis Ruch Date: Fri, 2 Jun 2023 08:04:50 -0700 Subject: [PATCH] feat(plugins): Refactor host plugins to boundary plugins (#3262) --- .gitignore | 2 +- internal/cmd/commands/database/migrate.go | 4 ++-- internal/daemon/controller/controller.go | 6 +++--- internal/daemon/controller/controller_test.go | 6 +++--- internal/daemon/worker/worker.go | 4 ++-- plugins/{host => boundary}/assets.go | 2 +- plugins/{host => boundary}/assets/README.md | 2 +- plugins/boundary/const.go | 6 ++++++ plugins/{host => boundary}/mains/aws/go.mod | 2 +- plugins/{host => boundary}/mains/aws/go.sum | 0 plugins/{host => boundary}/mains/aws/main.go | 0 plugins/{host => boundary}/mains/azure/go.mod | 2 +- plugins/{host => boundary}/mains/azure/go.sum | 0 plugins/{host => boundary}/mains/azure/main.go | 0 plugins/host/const.go | 6 ------ scripts/plugins.sh | 17 ++++++++++++++++- 16 files changed, 37 insertions(+), 22 deletions(-) rename plugins/{host => boundary}/assets.go (91%) rename plugins/{host => boundary}/assets/README.md (55%) create mode 100644 plugins/boundary/const.go rename plugins/{host => boundary}/mains/aws/go.mod (98%) rename plugins/{host => boundary}/mains/aws/go.sum (100%) rename plugins/{host => boundary}/mains/aws/main.go (100%) rename plugins/{host => boundary}/mains/azure/go.mod (97%) rename plugins/{host => boundary}/mains/azure/go.sum (100%) rename plugins/{host => boundary}/mains/azure/main.go (100%) delete mode 100644 plugins/host/const.go diff --git a/.gitignore b/.gitignore index a0b31a6ebd..33268717c1 100644 --- a/.gitignore +++ b/.gitignore @@ -120,7 +120,7 @@ main /bin/ update-ui-assets* /plugins/kms/assets/boundary-plugin* -/plugins/host/assets/boundary-plugin* +/plugins/boundary/assets/boundary-plugin* # Test config file test*.hcl diff --git a/internal/cmd/commands/database/migrate.go b/internal/cmd/commands/database/migrate.go index 9088f8f7ad..a23b73d571 100644 --- a/internal/cmd/commands/database/migrate.go +++ b/internal/cmd/commands/database/migrate.go @@ -14,7 +14,7 @@ import ( "github.com/hashicorp/boundary/internal/db/schema" "github.com/hashicorp/boundary/internal/errors" "github.com/hashicorp/boundary/internal/observability/event" - host_plugin_assets "github.com/hashicorp/boundary/plugins/host" + boundary_plugin_assets "github.com/hashicorp/boundary/plugins/boundary" external_plugins "github.com/hashicorp/boundary/sdk/plugins" "github.com/hashicorp/go-secure-stdlib/mlock" "github.com/hashicorp/go-secure-stdlib/parseutil" @@ -184,7 +184,7 @@ func (c *MigrateCommand) Run(args []string) (retCode int) { "aws", external_plugins.WithPluginOptions( pluginutil.WithPluginExecutionDirectory(c.Config.Plugins.ExecutionDir), - pluginutil.WithPluginsFilesystem(host_plugin_assets.HostPluginPrefix, host_plugin_assets.FileSystem()), + pluginutil.WithPluginsFilesystem(boundary_plugin_assets.PluginPrefix, boundary_plugin_assets.FileSystem()), ), external_plugins.WithLogger(pluginLogger.Named("aws")), ) diff --git a/internal/daemon/controller/controller.go b/internal/daemon/controller/controller.go index 765fde34f4..a085aae888 100644 --- a/internal/daemon/controller/controller.go +++ b/internal/daemon/controller/controller.go @@ -44,7 +44,7 @@ import ( pluginstorage "github.com/hashicorp/boundary/internal/storage/plugin" "github.com/hashicorp/boundary/internal/target" "github.com/hashicorp/boundary/internal/types/scope" - host_plugin_assets "github.com/hashicorp/boundary/plugins/host" + boundary_plugin_assets "github.com/hashicorp/boundary/plugins/boundary" plgpb "github.com/hashicorp/boundary/sdk/pbs/plugin" external_plugins "github.com/hashicorp/boundary/sdk/plugins" "github.com/hashicorp/boundary/version" @@ -273,7 +273,7 @@ func New(ctx context.Context, conf *Config) (*Controller, error) { pluginType, external_plugins.WithPluginOptions( pluginutil.WithPluginExecutionDirectory(conf.RawConfig.Plugins.ExecutionDir), - pluginutil.WithPluginsFilesystem(host_plugin_assets.HostPluginPrefix, host_plugin_assets.FileSystem()), + pluginutil.WithPluginsFilesystem(boundary_plugin_assets.PluginPrefix, boundary_plugin_assets.FileSystem()), ), external_plugins.WithLogger(pluginLogger.Named(pluginType)), ) @@ -291,7 +291,7 @@ func New(ctx context.Context, conf *Config) (*Controller, error) { pluginType, external_plugins.WithPluginOptions( pluginutil.WithPluginExecutionDirectory(conf.RawConfig.Plugins.ExecutionDir), - pluginutil.WithPluginsFilesystem(host_plugin_assets.HostPluginPrefix, host_plugin_assets.FileSystem()), + pluginutil.WithPluginsFilesystem(boundary_plugin_assets.PluginPrefix, boundary_plugin_assets.FileSystem()), ), external_plugins.WithLogger(pluginLogger.Named(pluginType)), ) diff --git a/internal/daemon/controller/controller_test.go b/internal/daemon/controller/controller_test.go index a495ff3dee..9370f1e871 100644 --- a/internal/daemon/controller/controller_test.go +++ b/internal/daemon/controller/controller_test.go @@ -15,7 +15,7 @@ import ( "github.com/hashicorp/boundary/internal/iam" "github.com/hashicorp/boundary/internal/kms" "github.com/hashicorp/boundary/internal/types/scope" - host_plugin_assets "github.com/hashicorp/boundary/plugins/host" + boundary_plugin_assets "github.com/hashicorp/boundary/plugins/boundary" "github.com/hashicorp/go-secure-stdlib/listenerutil" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -271,8 +271,8 @@ func TestController_NewPluginsConfig(t *testing.T) { // Remove random chars and hyphen name = name[0 : len(name)-6] switch name { - case host_plugin_assets.HostPluginPrefix + "aws", - host_plugin_assets.HostPluginPrefix + "azure": + case boundary_plugin_assets.PluginPrefix + "aws", + boundary_plugin_assets.PluginPrefix + "azure": default: require.Fail("unexpected name", name) } diff --git a/internal/daemon/worker/worker.go b/internal/daemon/worker/worker.go index 1fcf4e2b14..e074e0739d 100644 --- a/internal/daemon/worker/worker.go +++ b/internal/daemon/worker/worker.go @@ -31,7 +31,7 @@ import ( "github.com/hashicorp/boundary/internal/observability/event" "github.com/hashicorp/boundary/internal/server" "github.com/hashicorp/boundary/internal/storage" - host_plugin_assets "github.com/hashicorp/boundary/plugins/host" + boundary_plugin_assets "github.com/hashicorp/boundary/plugins/boundary" plgpb "github.com/hashicorp/boundary/sdk/pbs/plugin" external_plugins "github.com/hashicorp/boundary/sdk/plugins" "github.com/hashicorp/go-hclog" @@ -238,7 +238,7 @@ func New(ctx context.Context, conf *Config) (*Worker, error) { pluginType, external_plugins.WithPluginOptions( pluginutil.WithPluginExecutionDirectory(conf.RawConfig.Plugins.ExecutionDir), - pluginutil.WithPluginsFilesystem(host_plugin_assets.HostPluginPrefix, host_plugin_assets.FileSystem()), + pluginutil.WithPluginsFilesystem(boundary_plugin_assets.PluginPrefix, boundary_plugin_assets.FileSystem()), ), external_plugins.WithLogger(pluginLogger.Named(pluginType)), ) diff --git a/plugins/host/assets.go b/plugins/boundary/assets.go similarity index 91% rename from plugins/host/assets.go rename to plugins/boundary/assets.go index 0e4363f2b1..f9e11c5dfe 100644 --- a/plugins/host/assets.go +++ b/plugins/boundary/assets.go @@ -1,7 +1,7 @@ // Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 -package host_plugin_assets +package boundary_plugin_assets import ( "embed" diff --git a/plugins/host/assets/README.md b/plugins/boundary/assets/README.md similarity index 55% rename from plugins/host/assets/README.md rename to plugins/boundary/assets/README.md index 89b31ac586..eeacc7c85d 100644 --- a/plugins/host/assets/README.md +++ b/plugins/boundary/assets/README.md @@ -1,3 +1,3 @@ -This directory contains assets for host plugins. This file in particular exists +This directory contains assets for boundary plugins. This file in particular exists so that the Go embed package does not throw errors when importing this module outside of the main tree. diff --git a/plugins/boundary/const.go b/plugins/boundary/const.go new file mode 100644 index 0000000000..08bfd8a4fc --- /dev/null +++ b/plugins/boundary/const.go @@ -0,0 +1,6 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package boundary_plugin_assets + +const PluginPrefix = "boundary-plugin-" diff --git a/plugins/host/mains/aws/go.mod b/plugins/boundary/mains/aws/go.mod similarity index 98% rename from plugins/host/mains/aws/go.mod rename to plugins/boundary/mains/aws/go.mod index 33077d26b1..781fab2d6f 100644 --- a/plugins/host/mains/aws/go.mod +++ b/plugins/boundary/mains/aws/go.mod @@ -1,4 +1,4 @@ -module github.com/hashicorp/boundary/plugins/host/mains/aws +module github.com/hashicorp/boundary/plugins/boundary/mains/aws go 1.20 diff --git a/plugins/host/mains/aws/go.sum b/plugins/boundary/mains/aws/go.sum similarity index 100% rename from plugins/host/mains/aws/go.sum rename to plugins/boundary/mains/aws/go.sum diff --git a/plugins/host/mains/aws/main.go b/plugins/boundary/mains/aws/main.go similarity index 100% rename from plugins/host/mains/aws/main.go rename to plugins/boundary/mains/aws/main.go diff --git a/plugins/host/mains/azure/go.mod b/plugins/boundary/mains/azure/go.mod similarity index 97% rename from plugins/host/mains/azure/go.mod rename to plugins/boundary/mains/azure/go.mod index 53f2220d20..56dcaf057c 100644 --- a/plugins/host/mains/azure/go.mod +++ b/plugins/boundary/mains/azure/go.mod @@ -1,4 +1,4 @@ -module github.com/hashicorp/boundary/plugins/host/mains/azure +module github.com/hashicorp/boundary/plugins/boundary/mains/azure go 1.20 diff --git a/plugins/host/mains/azure/go.sum b/plugins/boundary/mains/azure/go.sum similarity index 100% rename from plugins/host/mains/azure/go.sum rename to plugins/boundary/mains/azure/go.sum diff --git a/plugins/host/mains/azure/main.go b/plugins/boundary/mains/azure/main.go similarity index 100% rename from plugins/host/mains/azure/main.go rename to plugins/boundary/mains/azure/main.go diff --git a/plugins/host/const.go b/plugins/host/const.go deleted file mode 100644 index 652d6136dd..0000000000 --- a/plugins/host/const.go +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) HashiCorp, Inc. -// SPDX-License-Identifier: MPL-2.0 - -package host_plugin_assets - -const HostPluginPrefix = "boundary-plugin-host-" diff --git a/scripts/plugins.sh b/scripts/plugins.sh index bb3fee7644..099bd662e4 100755 --- a/scripts/plugins.sh +++ b/scripts/plugins.sh @@ -16,7 +16,22 @@ SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done export DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )" -for PLUGIN_TYPE in {"kms","host"}; do +# Create boundary plugins +echo "==> Building boundary plugins..." +rm -f $DIR/plugins/boundary/assets/boundary-plugin-* +for CURR_PLUGIN in $(ls $DIR/plugins/boundary/mains); do + cd $DIR/plugins/boundary/mains/$CURR_PLUGIN; + go build -v -o $DIR/plugins/boundary/assets/boundary-plugin-${CURR_PLUGIN}${BINARY_SUFFIX} .; + cd $DIR; +done; +cd $DIR/plugins/boundary/assets; +for CURR_PLUGIN in $(ls boundary-plugin*); do + gzip -f -9 $CURR_PLUGIN; +done; +cd $DIR; + +# Create other plugins +for PLUGIN_TYPE in "kms"; do echo "==> Building ${PLUGIN_TYPE} plugins..." rm -f $DIR/plugins/$PLUGIN_TYPE/assets/boundary-plugin-${PLUGIN_TYPE}* for CURR_PLUGIN in $(ls $DIR/plugins/$PLUGIN_TYPE/mains); do