diff --git a/agent/agent.go b/agent/agent.go index b93146b4cb..19480012bc 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -291,9 +291,6 @@ type Agent struct { // the centrally configured proxy/service defaults. serviceManager *ServiceManager - // xdsServer is the Server instance that serves xDS gRPC API. - xdsServer *xds.Server - // grpcServer is the server instance used currently to serve xDS API for // Envoy. grpcServer *grpc.Server @@ -736,7 +733,7 @@ func (a *Agent) listenAndServeGRPC() error { return nil } - a.xdsServer = &xds.Server{ + xdsServer := &xds.Server{ Logger: a.logger, CfgMgr: a.proxyConfig, Authz: a, @@ -744,15 +741,15 @@ func (a *Agent) listenAndServeGRPC() error { CheckFetcher: a, CfgFetcher: a, } - a.xdsServer.Initialize() + xdsServer.Initialize() var err error if a.config.HTTPSPort > 0 { // gRPC uses the same TLS settings as the HTTPS API. If HTTPS is // enabled then gRPC will require HTTPS as well. - a.grpcServer, err = a.xdsServer.GRPCServer(a.tlsConfigurator) + a.grpcServer, err = xdsServer.GRPCServer(a.tlsConfigurator) } else { - a.grpcServer, err = a.xdsServer.GRPCServer(nil) + a.grpcServer, err = xdsServer.GRPCServer(nil) } if err != nil { return err diff --git a/command/connect/envoy/envoy.go b/command/connect/envoy/envoy.go index a9e1785fa5..000fa713f1 100644 --- a/command/connect/envoy/envoy.go +++ b/command/connect/envoy/envoy.go @@ -74,13 +74,13 @@ const defaultEnvoyVersion = "1.13.1" func (c *cmd) init() { c.flags = flag.NewFlagSet("", flag.ContinueOnError) - c.flags.StringVar(&c.proxyID, "proxy-id", "", + c.flags.StringVar(&c.proxyID, "proxy-id", os.Getenv("CONNECT_PROXY_ID"), "The proxy's ID on the local agent.") c.flags.BoolVar(&c.meshGateway, "mesh-gateway", false, "Configure Envoy as a Mesh Gateway.") - c.flags.StringVar(&c.sidecarFor, "sidecar-for", "", + c.flags.StringVar(&c.sidecarFor, "sidecar-for", os.Getenv("CONNECT_SIDECAR_FOR"), "The ID of a service instance on the local agent that this proxy should "+ "become a sidecar for. It requires that the proxy service is registered "+ "with the agent as a connect-proxy with Proxy.DestinationServiceID set "+ @@ -110,7 +110,7 @@ func (c *cmd) init() { "cases where either assumption is violated this flag will prevent the "+ "command attempting to resolve config from the local agent.") - c.flags.StringVar(&c.grpcAddr, "grpc-addr", "", + c.flags.StringVar(&c.grpcAddr, "grpc-addr", os.Getenv(api.GRPCAddrEnvName), "Set the agent's gRPC address and port (in http(s)://host:port format). "+ "Alternatively, you can specify CONSUL_GRPC_ADDR in ENV.") @@ -208,7 +208,6 @@ func canBindInternal(addr string, ifAddrs []net.Addr) bool { func canBind(addr string) bool { ifAddrs, err := net.InterfaceAddrs() - if err != nil { return false } @@ -222,17 +221,6 @@ func (c *cmd) Run(args []string) int { } passThroughArgs := c.flags.Args() - // Load the proxy ID and token from env vars if they're set - if c.proxyID == "" { - c.proxyID = os.Getenv("CONNECT_PROXY_ID") - } - if c.sidecarFor == "" { - c.sidecarFor = os.Getenv("CONNECT_SIDECAR_FOR") - } - if c.grpcAddr == "" { - c.grpcAddr = os.Getenv(api.GRPCAddrEnvName) - } - // Setup Consul client client, err := c.http.APIClient() if err != nil { @@ -355,14 +343,14 @@ func (c *cmd) Run(args []string) int { // See if we need to lookup proxyID if c.proxyID == "" && c.sidecarFor != "" { - proxyID, err := c.lookupProxyIDForSidecar() + proxyID, err := proxyCmd.LookupProxyIDForSidecar(c.client, c.sidecarFor) if err != nil { c.UI.Error(err.Error()) return 1 } c.proxyID = proxyID } else if c.proxyID == "" && c.meshGateway { - gatewaySvc, err := c.lookupGatewayProxy() + gatewaySvc, err := proxyCmd.LookupGatewayProxy(c.client) if err != nil { c.UI.Error(err.Error()) return 1 @@ -372,8 +360,7 @@ func (c *cmd) Run(args []string) int { } if c.proxyID == "" { - c.UI.Error("No proxy ID specified. One of -proxy-id or -sidecar-for/-mesh-gateway is " + - "required") + c.UI.Error("No proxy ID specified. One of -proxy-id or -sidecar-for/-mesh-gateway is required") return 1 } @@ -583,14 +570,6 @@ func (c *cmd) generateConfig() ([]byte, error) { return bsCfg.GenerateJSON(args) } -func (c *cmd) lookupProxyIDForSidecar() (string, error) { - return proxyCmd.LookupProxyIDForSidecar(c.client, c.sidecarFor) -} - -func (c *cmd) lookupGatewayProxy() (*api.AgentService, error) { - return proxyCmd.LookupGatewayProxy(c.client) -} - func (c *cmd) lookupGRPCPort() (int, error) { self, err := c.client.Agent().Self() if err != nil { diff --git a/command/connect/envoy/envoy_test.go b/command/connect/envoy/envoy_test.go index 2b4228ff08..8b2d1996a2 100644 --- a/command/connect/envoy/envoy_test.go +++ b/command/connect/envoy/envoy_test.go @@ -81,7 +81,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "defaults", Flags: []string{"-proxy-id", "test-proxy"}, - Env: []string{}, WantArgs: BootstrapTplArgs{ EnvoyVersion: defaultEnvoyVersion, ProxyCluster: "test-proxy", @@ -98,7 +97,6 @@ func TestGenerateConfig(t *testing.T) { Name: "token-arg", Flags: []string{"-proxy-id", "test-proxy", "-token", "c9a52720-bf6c-4aa6-b8bc-66881a5ade95"}, - Env: []string{}, WantArgs: BootstrapTplArgs{ EnvoyVersion: defaultEnvoyVersion, ProxyCluster: "test-proxy", @@ -136,7 +134,6 @@ func TestGenerateConfig(t *testing.T) { Flags: []string{"-proxy-id", "test-proxy", "-token-file", "@@TEMPDIR@@token.txt", }, - Env: []string{}, Files: map[string]string{ "token.txt": "c9a52720-bf6c-4aa6-b8bc-66881a5ade95", }, @@ -179,7 +176,6 @@ func TestGenerateConfig(t *testing.T) { Name: "grpc-addr-flag", Flags: []string{"-proxy-id", "test-proxy", "-grpc-addr", "localhost:9999"}, - Env: []string{}, WantArgs: BootstrapTplArgs{ EnvoyVersion: defaultEnvoyVersion, ProxyCluster: "test-proxy", @@ -220,7 +216,6 @@ func TestGenerateConfig(t *testing.T) { Name: "grpc-addr-unix", Flags: []string{"-proxy-id", "test-proxy", "-grpc-addr", "unix:///var/run/consul.sock"}, - Env: []string{}, WantArgs: BootstrapTplArgs{ EnvoyVersion: defaultEnvoyVersion, ProxyCluster: "test-proxy", @@ -254,7 +249,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "access-log-path", Flags: []string{"-proxy-id", "test-proxy", "-admin-access-log-path", "/some/path/access.log"}, - Env: []string{}, WantArgs: BootstrapTplArgs{ EnvoyVersion: defaultEnvoyVersion, ProxyCluster: "test-proxy", @@ -273,7 +267,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "missing-ca-file", Flags: []string{"-proxy-id", "test-proxy", "-ca-file", "some/path"}, - Env: []string{}, WantArgs: BootstrapTplArgs{ EnvoyVersion: defaultEnvoyVersion, ProxyCluster: "test-proxy", @@ -310,7 +303,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "custom-bootstrap", Flags: []string{"-proxy-id", "test-proxy"}, - Env: []string{}, ProxyConfig: map[string]interface{}{ // Add a completely custom bootstrap template. Never mind if this is // invalid envoy config just as long as it works and gets the variables @@ -348,7 +340,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "extra_-single", Flags: []string{"-proxy-id", "test-proxy"}, - Env: []string{}, ProxyConfig: map[string]interface{}{ // Add a custom sections with interpolated variables. These are all // invalid config syntax too but we are just testing they have the right @@ -381,7 +372,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "extra_-multiple", Flags: []string{"-proxy-id", "test-proxy"}, - Env: []string{}, ProxyConfig: map[string]interface{}{ // Add a custom sections with interpolated variables. These are all // invalid config syntax too but we are just testing they have the right @@ -419,7 +409,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "stats-config-override", Flags: []string{"-proxy-id", "test-proxy"}, - Env: []string{}, ProxyConfig: map[string]interface{}{ // Add a custom sections with interpolated variables. These are all // invalid config syntax too but we are just testing they have the right @@ -444,7 +433,6 @@ func TestGenerateConfig(t *testing.T) { { Name: "zipkin-tracing-config", Flags: []string{"-proxy-id", "test-proxy"}, - Env: []string{}, ProxyConfig: map[string]interface{}{ // Add a custom sections with interpolated variables. These are all // invalid config syntax too but we are just testing they have the right @@ -520,9 +508,6 @@ func TestGenerateConfig(t *testing.T) { } } - ui := cli.NewMockUi() - c := New(ui) - // Run a mock agent API that just always returns the proxy config in the // test. srv := httptest.NewServer(testMockAgent(tc.ProxyConfig, tc.GRPCPort)) @@ -530,15 +515,15 @@ func TestGenerateConfig(t *testing.T) { // Set the agent HTTP address in ENV to be our mock tc.Env = append(tc.Env, "CONSUL_HTTP_ADDR="+srv.URL) - testDirPrefix := testDir + string(filepath.Separator) - - myFlags := copyAndReplaceAll(tc.Flags, "@@TEMPDIR@@", testDirPrefix) myEnv := copyAndReplaceAll(tc.Env, "@@TEMPDIR@@", testDirPrefix) - defer testSetAndResetEnv(t, myEnv)() + ui := cli.NewMockUi() + c := New(ui) + // Run the command + myFlags := copyAndReplaceAll(tc.Flags, "@@TEMPDIR@@", testDirPrefix) args := append([]string{"-bootstrap"}, myFlags...) code := c.Run(args) if tc.WantErr == "" {