View Source
const (
	// The constants below are the names of the plugins that can be dispensed
	// from the plugin server.
	ProviderPluginName = "provider"


View Source
var Handshake = plugin.HandshakeConfig{

	MagicCookieKey:   "TF_PLUGIN_MAGIC_COOKIE",
	MagicCookieValue: "d602bf8f470bc67ca7faa0386276bbdd4330efaf76d1a219cb4d6991ca9872b2",

    Handshake is the HandshakeConfig used to configure clients and servers.


    func Debug

    func Debug(ctx context.Context, providerAddr string, opts *ServeOpts) error

      Debug starts a debug server and controls its lifecycle, printing the information needed for Terraform to connect to the provider to stdout. os.Interrupt will be captured and used to stop the server.

      func Serve

      func Serve(opts *ServeOpts)

        Serve serves a plugin. This function never returns and should be the final function called in the main function of the plugin.


        type GRPCProviderFunc

        type GRPCProviderFunc func() tfprotov5.ProviderServer

        type ProviderFunc

        type ProviderFunc func() *schema.Provider

        type ReattachConfig

        type ReattachConfig struct {
        	Protocol string
        	Pid      int
        	Test     bool
        	Addr     ReattachConfigAddr

          ReattachConfig holds the information Terraform needs to be able to attach itself to a provider process, so it can drive the process.

          func DebugServe

          func DebugServe(ctx context.Context, opts *ServeOpts) (ReattachConfig, <-chan struct{}, error)

            DebugServe starts a plugin server in debug mode; this should only be used when the provider will manage its own lifecycle. It is not recommended for normal usage; Serve is the correct function for that.

            type ReattachConfigAddr

            type ReattachConfigAddr struct {
            	Network string
            	String  string

              ReattachConfigAddr is a JSON-encoding friendly version of net.Addr.

              type ServeOpts

              type ServeOpts struct {
              	ProviderFunc ProviderFunc
              	// Wrapped versions of the above plugins will automatically shimmed and
              	// added to the GRPC functions when possible.
              	GRPCProviderFunc GRPCProviderFunc
              	// Logger is the logger that go-plugin will use.
              	Logger hclog.Logger
              	// TestConfig should only be set when the provider is being tested; it
              	// will opt out of go-plugin's lifecycle management and other features,
              	// and will use the supplied configuration options to control the
              	// plugin's lifecycle and communicate connection information. See the
              	// go-plugin GoDoc for more information.
              	TestConfig *plugin.ServeTestConfig

                ServeOpts are the configurations to serve a plugin.

                Source Files