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 a0b31a6eb..33268717c 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 9088f8f7a..a23b73d57 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 765fde34f..a085aae88 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 a495ff3de..9370f1e87 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 1fcf4e2b1..e074e0739 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 0e4363f2b..f9e11c5df 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 89b31ac58..eeacc7c85 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 000000000..08bfd8a4f --- /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 33077d26b..781fab2d6 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 53f2220d2..56dcaf057 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 652d6136d..000000000 --- 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 bb3fee764..099bd662e 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