feat(plugins): Refactor host plugins to boundary plugins (#3262)

pull/3266/head
Louis Ruch 3 years ago committed by GitHub
parent 97977f1995
commit 281f217dcc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

2
.gitignore vendored

@ -120,7 +120,7 @@ main
/bin/ /bin/
update-ui-assets* update-ui-assets*
/plugins/kms/assets/boundary-plugin* /plugins/kms/assets/boundary-plugin*
/plugins/host/assets/boundary-plugin* /plugins/boundary/assets/boundary-plugin*
# Test config file # Test config file
test*.hcl test*.hcl

@ -14,7 +14,7 @@ import (
"github.com/hashicorp/boundary/internal/db/schema" "github.com/hashicorp/boundary/internal/db/schema"
"github.com/hashicorp/boundary/internal/errors" "github.com/hashicorp/boundary/internal/errors"
"github.com/hashicorp/boundary/internal/observability/event" "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" external_plugins "github.com/hashicorp/boundary/sdk/plugins"
"github.com/hashicorp/go-secure-stdlib/mlock" "github.com/hashicorp/go-secure-stdlib/mlock"
"github.com/hashicorp/go-secure-stdlib/parseutil" "github.com/hashicorp/go-secure-stdlib/parseutil"
@ -184,7 +184,7 @@ func (c *MigrateCommand) Run(args []string) (retCode int) {
"aws", "aws",
external_plugins.WithPluginOptions( external_plugins.WithPluginOptions(
pluginutil.WithPluginExecutionDirectory(c.Config.Plugins.ExecutionDir), 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")), external_plugins.WithLogger(pluginLogger.Named("aws")),
) )

@ -44,7 +44,7 @@ import (
pluginstorage "github.com/hashicorp/boundary/internal/storage/plugin" pluginstorage "github.com/hashicorp/boundary/internal/storage/plugin"
"github.com/hashicorp/boundary/internal/target" "github.com/hashicorp/boundary/internal/target"
"github.com/hashicorp/boundary/internal/types/scope" "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" plgpb "github.com/hashicorp/boundary/sdk/pbs/plugin"
external_plugins "github.com/hashicorp/boundary/sdk/plugins" external_plugins "github.com/hashicorp/boundary/sdk/plugins"
"github.com/hashicorp/boundary/version" "github.com/hashicorp/boundary/version"
@ -273,7 +273,7 @@ func New(ctx context.Context, conf *Config) (*Controller, error) {
pluginType, pluginType,
external_plugins.WithPluginOptions( external_plugins.WithPluginOptions(
pluginutil.WithPluginExecutionDirectory(conf.RawConfig.Plugins.ExecutionDir), 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)), external_plugins.WithLogger(pluginLogger.Named(pluginType)),
) )
@ -291,7 +291,7 @@ func New(ctx context.Context, conf *Config) (*Controller, error) {
pluginType, pluginType,
external_plugins.WithPluginOptions( external_plugins.WithPluginOptions(
pluginutil.WithPluginExecutionDirectory(conf.RawConfig.Plugins.ExecutionDir), 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)), external_plugins.WithLogger(pluginLogger.Named(pluginType)),
) )

@ -15,7 +15,7 @@ import (
"github.com/hashicorp/boundary/internal/iam" "github.com/hashicorp/boundary/internal/iam"
"github.com/hashicorp/boundary/internal/kms" "github.com/hashicorp/boundary/internal/kms"
"github.com/hashicorp/boundary/internal/types/scope" "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/hashicorp/go-secure-stdlib/listenerutil"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
@ -271,8 +271,8 @@ func TestController_NewPluginsConfig(t *testing.T) {
// Remove random chars and hyphen // Remove random chars and hyphen
name = name[0 : len(name)-6] name = name[0 : len(name)-6]
switch name { switch name {
case host_plugin_assets.HostPluginPrefix + "aws", case boundary_plugin_assets.PluginPrefix + "aws",
host_plugin_assets.HostPluginPrefix + "azure": boundary_plugin_assets.PluginPrefix + "azure":
default: default:
require.Fail("unexpected name", name) require.Fail("unexpected name", name)
} }

@ -31,7 +31,7 @@ import (
"github.com/hashicorp/boundary/internal/observability/event" "github.com/hashicorp/boundary/internal/observability/event"
"github.com/hashicorp/boundary/internal/server" "github.com/hashicorp/boundary/internal/server"
"github.com/hashicorp/boundary/internal/storage" "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" plgpb "github.com/hashicorp/boundary/sdk/pbs/plugin"
external_plugins "github.com/hashicorp/boundary/sdk/plugins" external_plugins "github.com/hashicorp/boundary/sdk/plugins"
"github.com/hashicorp/go-hclog" "github.com/hashicorp/go-hclog"
@ -238,7 +238,7 @@ func New(ctx context.Context, conf *Config) (*Worker, error) {
pluginType, pluginType,
external_plugins.WithPluginOptions( external_plugins.WithPluginOptions(
pluginutil.WithPluginExecutionDirectory(conf.RawConfig.Plugins.ExecutionDir), 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)), external_plugins.WithLogger(pluginLogger.Named(pluginType)),
) )

@ -1,7 +1,7 @@
// Copyright (c) HashiCorp, Inc. // Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0 // SPDX-License-Identifier: MPL-2.0
package host_plugin_assets package boundary_plugin_assets
import ( import (
"embed" "embed"

@ -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 so that the Go embed package does not throw errors when importing this module
outside of the main tree. outside of the main tree.

@ -0,0 +1,6 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package boundary_plugin_assets
const PluginPrefix = "boundary-plugin-"

@ -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 go 1.20

@ -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 go 1.20

@ -1,6 +0,0 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package host_plugin_assets
const HostPluginPrefix = "boundary-plugin-host-"

@ -16,7 +16,22 @@ SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
export DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )" 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..." echo "==> Building ${PLUGIN_TYPE} plugins..."
rm -f $DIR/plugins/$PLUGIN_TYPE/assets/boundary-plugin-${PLUGIN_TYPE}* rm -f $DIR/plugins/$PLUGIN_TYPE/assets/boundary-plugin-${PLUGIN_TYPE}*
for CURR_PLUGIN in $(ls $DIR/plugins/$PLUGIN_TYPE/mains); do for CURR_PLUGIN in $(ls $DIR/plugins/$PLUGIN_TYPE/mains); do

Loading…
Cancel
Save