consul/agent/connect/ca/plugin/serve.go

34 lines
1.1 KiB
Go

package plugin
import (
"github.com/hashicorp/consul/agent/connect/ca"
"github.com/hashicorp/go-plugin"
)
// Name is the name of the plugin that users of the package should use
// with *plugin.Client.Dispense to get the proper plugin instance.
const Name = "consul-connect-ca"
// handshakeConfig is the HandshakeConfig used to configure clients and servers.
var handshakeConfig = plugin.HandshakeConfig{
// The ProtocolVersion is the version that must match between Consul
// and CA plugins. This should be bumped whenever a change happens in
// one or the other that makes it so that they can't safely communicate.
ProtocolVersion: 1,
// The magic cookie values should NEVER be changed.
MagicCookieKey: "CONSUL_PLUGIN_MAGIC_COOKIE",
MagicCookieValue: "f31f63b28fa82a3cdb30a6284cb1e50e3a13b7e60ba105a2c91219da319d216c",
}
// Serve serves a CA plugin. This function never returns and should be the
// final function called in the main function of the plugin.
func Serve(p ca.Provider) {
plugin.Serve(&plugin.ServeConfig{
HandshakeConfig: handshakeConfig,
Plugins: map[string]plugin.Plugin{
Name: &ProviderPlugin{Impl: p},
},
})
}