77f6b20db0
Ensure nothing in the troubleshoot go module depends on consul's top level module. This is so we can import troubleshoot into consul-k8s and not import all of consul. * turns troubleshoot into a go module [authored by @curtbushko] * gets the envoy protos into the troubleshoot module [authored by @curtbushko] * adds a new go module `envoyextensions` which has xdscommon and extensioncommon folders that both the xds package and the troubleshoot package can import * adds testing and linting for the new go modules * moves the unit tests in `troubleshoot/validateupstream` that depend on proxycfg/xds into the xds package, with a comment describing why those tests cannot be in the troubleshoot package * fixes all the imports everywhere as a result of these changes Co-authored-by: Curt Bushko <cbushko@gmail.com>
22 lines
853 B
Go
22 lines
853 B
Go
package extensioncommon
|
|
|
|
import (
|
|
"github.com/hashicorp/consul/envoyextensions/xdscommon"
|
|
)
|
|
|
|
// EnvoyExtender is the interface that all Envoy extensions must implement in order
|
|
// to be dynamically executed during runtime.
|
|
type EnvoyExtender interface {
|
|
|
|
// Validate ensures the data in config can successfuly be used
|
|
// to apply the specified Envoy extension.
|
|
Validate(*RuntimeConfig) error
|
|
|
|
// Extend updates indexed xDS structures to include patches for
|
|
// built-in extensions. It is responsible for applying extensions to
|
|
// the the appropriate xDS resources. If any portion of this function fails,
|
|
// it will attempt continue and return an error. The caller can then determine
|
|
// if it is better to use a partially applied extension or error out.
|
|
Extend(*xdscommon.IndexedResources, *RuntimeConfig) (*xdscommon.IndexedResources, error)
|
|
}
|