From ff8e2d9b787fb1a4a694446c6a801b6f113d7f28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 4 May 2021 11:36:51 +0200 Subject: [PATCH 1/8] chore: remove unused code --- e2e/_suites/fleet/fleet_server.go | 49 ------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 e2e/_suites/fleet/fleet_server.go diff --git a/e2e/_suites/fleet/fleet_server.go b/e2e/_suites/fleet/fleet_server.go deleted file mode 100644 index daecf45fd9..0000000000 --- a/e2e/_suites/fleet/fleet_server.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package main - -import log "github.com/sirupsen/logrus" - -func (fts *FleetTestSuite) bootstrapFleetServerWithInstaller(image string, installerType string) error { - fts.ElasticAgentStopped = true - - log.WithFields(log.Fields{ - "image": image, - "installer": installerType, - }).Trace("Bootstrapping fleet server for the agent") - - err := fts.anAgentIsDeployedToFleetWithInstallerAndFleetServer(image, installerType, true) - if err != nil { - log.WithFields(log.Fields{ - "error": err, - "image": image, - "installer": installerType, - }).Error("Fleet server could not be bootstrapped for the agent") - return err - } - - log.WithFields(log.Fields{ - "fleetServerHostname": fts.FleetServerHostname, - "image": image, - "installer": installerType, - }).Info("Fleet server was bootstrapped for the agent") - - err = fts.theAgentIsListedInFleetWithStatus("online") - if err != nil { - log.WithFields(log.Fields{ - "error": err, - "fleetServerHostname": fts.FleetServerHostname, - "image": image, - "installer": installerType, - }).Error("Fleet server could not reach the online status") - return err - } - - // the new compose files for fleet-server (centos/debian) are setting the hostname - // we need it here, before getting the installer, to get the installer using fleet-server host - fts.FleetServerHostname = "fleet-server-" + image - - return nil -} From 67b9796f6f36142ce92163b8808e4ea1bcdd03f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 4 May 2021 11:54:47 +0200 Subject: [PATCH 2/8] chore: remove all references to fleet server hostname Because we assume it's a runtime dependency, provided by the initial compose file, we do not need to calculate service names, or URIs for the fleet-service endpoint. Instead, we assume it's listening in the 8220 port in the "fleet-server" hostname, which is accessible from the network created by docker-compose. --- e2e/_suites/fleet/fleet.go | 42 ++++++++------------- e2e/_suites/fleet/stand-alone.go | 5 ++- internal/installer/elasticagent.go | 13 +++---- internal/installer/tar.go | 5 +-- internal/kibana/fleet.go | 60 ++++++++---------------------- 5 files changed, 42 insertions(+), 83 deletions(-) diff --git a/e2e/_suites/fleet/fleet.go b/e2e/_suites/fleet/fleet.go index c69b936ef8..7eac3eba0f 100644 --- a/e2e/_suites/fleet/fleet.go +++ b/e2e/_suites/fleet/fleet.go @@ -7,10 +7,11 @@ package main import ( "context" "fmt" - "github.com/google/uuid" "strings" "time" + "github.com/google/uuid" + "github.com/cenkalti/backoff/v4" "github.com/cucumber/godog" "github.com/elastic/e2e-testing/internal/common" @@ -45,8 +46,6 @@ type FleetTestSuite struct { PolicyUpdatedAt string // the moment the policy was updated Version string // current elastic-agent version kibanaClient *kibana.Client - // fleet server - FleetServerHostname string // hostname of the fleet server. If empty, it means the agent is the first one, bootstrapping fleet server } // afterScenario destroys the state created by a scenario @@ -105,7 +104,6 @@ func (fts *FleetTestSuite) afterScenario() { fts.CurrentToken = "" fts.Image = "" fts.Hostname = "" - fts.FleetServerHostname = "" } // beforeScenario creates the state needed by a scenario @@ -196,7 +194,7 @@ func (fts *FleetTestSuite) anStaleAgentIsDeployedToFleetWithInstaller(image, ver // prepare installer for stale version if fts.Version != agentVersionBackup { - i := installer.GetElasticAgentInstaller(image, installerType, fts.Version, "") + i := installer.GetElasticAgentInstaller(image, installerType, fts.Version) fts.Installers[fmt.Sprintf("%s-%s-%s", image, installerType, version)] = i } @@ -277,15 +275,14 @@ func (fts *FleetTestSuite) agentInVersion(version string) error { // supported installers: tar, systemd func (fts *FleetTestSuite) anAgentIsDeployedToFleetWithInstaller(image string, installerType string) error { - return fts.anAgentIsDeployedToFleetWithInstallerAndFleetServer(image, installerType, false) + return fts.anAgentIsDeployedToFleetWithInstallerAndFleetServer(image, installerType) } -func (fts *FleetTestSuite) anAgentIsDeployedToFleetWithInstallerAndFleetServer(image string, installerType string, bootstrapFleetServer bool) error { +func (fts *FleetTestSuite) anAgentIsDeployedToFleetWithInstallerAndFleetServer(image string, installerType string) error { log.WithFields(log.Fields{ - "bootstrapFleetServer": bootstrapFleetServer, - "image": image, - "installer": installerType, - }).Trace("Deploying an agent to Fleet with base image and fleet server") + "image": image, + "installer": installerType, + }).Trace("Deploying an agent to Fleet with base image using an already bootstrapped Fleet Server") fts.Image = image fts.InstallerType = installerType @@ -295,12 +292,7 @@ func (fts *FleetTestSuite) anAgentIsDeployedToFleetWithInstallerAndFleetServer(i containerName := fts.getContainerName(agentInstaller, 1) // name of the container // enroll the agent with a new token - policy := fts.Policy - if bootstrapFleetServer { - policy = fts.FleetServerPolicy - } - - enrollmentKey, err := fts.kibanaClient.CreateEnrollmentAPIKey(policy) + enrollmentKey, err := fts.kibanaClient.CreateEnrollmentAPIKey(fts.Policy) if err != nil { return err } @@ -308,7 +300,7 @@ func (fts *FleetTestSuite) anAgentIsDeployedToFleetWithInstallerAndFleetServer(i fts.CurrentTokenID = enrollmentKey.ID var fleetConfig *kibana.FleetConfig - fleetConfig, err = deployAgentToFleet(agentInstaller, containerName, fts.CurrentToken, fts.FleetServerHostname) + fleetConfig, err = deployAgentToFleet(agentInstaller, containerName, fts.CurrentToken) fts.Cleanup = true if err != nil { @@ -346,15 +338,13 @@ func (fts *FleetTestSuite) getServiceName(i installer.ElasticAgentInstaller) str } func (fts *FleetTestSuite) getInstaller() installer.ElasticAgentInstaller { - bootstrappedAgent := fts.FleetServerHostname == "" - - key := fmt.Sprintf("%s-%s-%s-%t", fts.Image, fts.InstallerType, fts.Version, bootstrappedAgent) + key := fmt.Sprintf("%s-%s-%s", fts.Image, fts.InstallerType, fts.Version) // check if the agent is already cached if i, exists := fts.Installers[key]; exists { return i } - agentInstaller := installer.GetElasticAgentInstaller(fts.Image, fts.InstallerType, fts.Version, fts.FleetServerHostname) + agentInstaller := installer.GetElasticAgentInstaller(fts.Image, fts.InstallerType, fts.Version) // cache the new installer fts.Installers[key] = agentInstaller @@ -633,7 +623,7 @@ func (fts *FleetTestSuite) theAgentIsReenrolledOnTheHost() error { // during an unenroll the fleet server exits as there is no longer // and agent id associated with the enrollment. When fleet server // restarts it needs a new agent to associate with the boostrap - cfg, err := kibana.NewFleetConfig(fts.CurrentToken, fts.FleetServerHostname) + cfg, err := kibana.NewFleetConfig(fts.CurrentToken) if err != nil { return err } @@ -1003,7 +993,7 @@ func (fts *FleetTestSuite) anAttemptToEnrollANewAgentFails() error { containerName := fts.getContainerName(agentInstaller, 2) // name of the new container - fleetConfig, err := deployAgentToFleet(agentInstaller, containerName, fts.CurrentToken, fts.FleetServerHostname) + fleetConfig, err := deployAgentToFleet(agentInstaller, containerName, fts.CurrentToken) // the installation process for TAR includes the enrollment if agentInstaller.InstallerType != "tar" { if err != nil { @@ -1141,7 +1131,7 @@ func (fts *FleetTestSuite) checkDataStream() error { return err } -func deployAgentToFleet(agentInstaller installer.ElasticAgentInstaller, containerName string, token string, fleetServerHost string) (*kibana.FleetConfig, error) { +func deployAgentToFleet(agentInstaller installer.ElasticAgentInstaller, containerName string, token string) (*kibana.FleetConfig, error) { profile := agentInstaller.Profile // name of the runtime dependencies compose file service := agentInstaller.Service // name of the service serviceTag := agentInstaller.Tag // docker tag of the service @@ -1172,7 +1162,7 @@ func deployAgentToFleet(agentInstaller installer.ElasticAgentInstaller, containe return nil, err } - cfg, cfgError := kibana.NewFleetConfig(token, fleetServerHost) + cfg, cfgError := kibana.NewFleetConfig(token) if cfgError != nil { return nil, cfgError } diff --git a/e2e/_suites/fleet/stand-alone.go b/e2e/_suites/fleet/stand-alone.go index e52db64915..9049243fdb 100644 --- a/e2e/_suites/fleet/stand-alone.go +++ b/e2e/_suites/fleet/stand-alone.go @@ -7,11 +7,12 @@ package main import ( "context" "fmt" - "github.com/elastic/e2e-testing/cli/config" "path" "strings" "time" + "github.com/elastic/e2e-testing/cli/config" + "github.com/cenkalti/backoff/v4" "github.com/cucumber/godog" "github.com/elastic/e2e-testing/internal/common" @@ -138,7 +139,7 @@ func (sats *StandAloneTestSuite) startAgent(image string, composeFilename string // load the docker images that were already: // a. downloaded from the GCP bucket // b. fetched from the local beats binaries - dockerInstaller := installer.GetElasticAgentInstaller("docker", image, common.AgentVersion, "") + dockerInstaller := installer.GetElasticAgentInstaller("docker", image, common.AgentVersion) dockerInstaller.PreInstallFn() diff --git a/internal/installer/elasticagent.go b/internal/installer/elasticagent.go index ec32ea4f6b..347af4d3dc 100644 --- a/internal/installer/elasticagent.go +++ b/internal/installer/elasticagent.go @@ -106,22 +106,21 @@ func downloadAgentBinary(artifactName string, artifact string, version string) ( } // GetElasticAgentInstaller returns an installer from a docker image -func GetElasticAgentInstaller(image string, installerType string, version string, fleetServerHost string) ElasticAgentInstaller { +func GetElasticAgentInstaller(image string, installerType string, version string) ElasticAgentInstaller { log.WithFields(log.Fields{ - "fleetServerHost": fleetServerHost, - "image": image, - "installer": installerType, - "version": version, + "image": image, + "installer": installerType, + "version": version, }).Debug("Configuring installer for the agent") var installer ElasticAgentInstaller var err error if "centos" == image && "tar" == installerType { - installer, err = newTarInstaller("centos", "latest", version, fleetServerHost) + installer, err = newTarInstaller("centos", "latest", version) } else if "centos" == image && "systemd" == installerType { installer, err = newCentosInstaller("centos", "latest", version) } else if "debian" == image && "tar" == installerType { - installer, err = newTarInstaller("debian", "stretch", version, fleetServerHost) + installer, err = newTarInstaller("debian", "stretch", version) } else if "debian" == image && "systemd" == installerType { installer, err = newDebianInstaller("debian", "stretch", version) } else if "docker" == image && "default" == installerType { diff --git a/internal/installer/tar.go b/internal/installer/tar.go index 72cc698a08..8d949aa74f 100644 --- a/internal/installer/tar.go +++ b/internal/installer/tar.go @@ -145,11 +145,8 @@ func (i *TARPackage) WithVersion(version string) *TARPackage { } // newTarInstaller returns an instance of the Debian installer for a specific version -func newTarInstaller(image string, tag string, version string, fleetServerHost string) (ElasticAgentInstaller, error) { +func newTarInstaller(image string, tag string, version string) (ElasticAgentInstaller, error) { dockerImage := image + "-systemd" // we want to consume systemd boxes - if fleetServerHost == "" { - dockerImage = "fleet-server-" + image - } service := dockerImage profile := common.FleetProfileName diff --git a/internal/kibana/fleet.go b/internal/kibana/fleet.go index 8f3cf1df52..11f27cf328 100644 --- a/internal/kibana/fleet.go +++ b/internal/kibana/fleet.go @@ -21,22 +21,14 @@ type FleetConfig struct { KibanaURI string FleetServerPort int FleetServerURI string - FleetServerServiceToken string // server - BootstrapFleetServer bool - ServerPolicyID string + ServerPolicyID string } -// NewFleetConfig builds a new configuration for the fleet agent, defaulting ES credentials, URI and port. -// If the 'fleetServerHost' flag is empty, then it will create the config for the initial fleet server -// used to bootstrap Fleet Server -// If the 'fleetServerHost' flag is not empty, the it will create the config for an agent using an existing Fleet -// Server to connect to Fleet. It will also retrieve the default policy ID for fleet server -func NewFleetConfig(token string, fleetServerHost string) (*FleetConfig, error) { - bootstrapFleetServer := (fleetServerHost == "") - +// NewFleetConfig builds a new configuration for the fleet agent, defaulting fleet-server host, ES credentials, URI and port. +// It will also retrieve the default policy ID for fleet server +func NewFleetConfig(token string) (*FleetConfig, error) { cfg := &FleetConfig{ - BootstrapFleetServer: bootstrapFleetServer, EnrollmentToken: token, ElasticsearchCredentials: "elastic:changeme", ElasticsearchPort: 9200, @@ -44,7 +36,7 @@ func NewFleetConfig(token string, fleetServerHost string) (*FleetConfig, error) KibanaPort: 5601, KibanaURI: "kibana", FleetServerPort: 8220, - FleetServerURI: fleetServerHost, + FleetServerURI: "fleet-server", } client, err := NewClient() @@ -52,45 +44,25 @@ func NewFleetConfig(token string, fleetServerHost string) (*FleetConfig, error) return cfg, err } - if bootstrapFleetServer { - // obtain a Fleet Server Service Token for bootstrap - serviceToken, err := client.CreateServiceToken() - log.WithField("serviceToken", serviceToken).Trace("Get service token") - if err != nil { - return nil, err - } - cfg.FleetServerServiceToken = serviceToken.Value - } else { - defaultFleetServerPolicy, err := client.GetDefaultPolicy(true) - if err != nil { - return nil, err - } + defaultFleetServerPolicy, err := client.GetDefaultPolicy(true) + if err != nil { + return nil, err + } - cfg.ServerPolicyID = defaultFleetServerPolicy.ID + cfg.ServerPolicyID = defaultFleetServerPolicy.ID - log.WithFields(log.Fields{ - "elasticsearch": cfg.ElasticsearchURI, - "elasticsearchPort": cfg.ElasticsearchPort, - "policyID": cfg.ServerPolicyID, - "token": cfg.EnrollmentToken, - }).Debug("Fleet Server config created") - - } + log.WithFields(log.Fields{ + "elasticsearch": cfg.ElasticsearchURI, + "elasticsearchPort": cfg.ElasticsearchPort, + "policyID": cfg.ServerPolicyID, + "token": cfg.EnrollmentToken, + }).Debug("Fleet Server config created") return cfg, nil } // Flags bootstrap flags for fleet server func (cfg FleetConfig) Flags() []string { - if cfg.BootstrapFleetServer { - // TO-DO: remove all code to calculate the fleet-server policy, because it's inferred by the fleet-server - return []string{ - "--force", - "--fleet-server-es", fmt.Sprintf("http://%s:%d", cfg.ElasticsearchURI, cfg.ElasticsearchPort), - "--fleet-server-service-token", cfg.FleetServerServiceToken, - } - } - /* // agent using an already bootstrapped fleet-server fleetServerHost := "https://hostname_of_the_bootstrapped_fleet_server:8220" From 3388517a75186358ef4253583f1934464e7d7d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 4 May 2021 13:08:02 +0200 Subject: [PATCH 3/8] fix: use HTTP to connect to fleet-server --- internal/kibana/fleet.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/kibana/fleet.go b/internal/kibana/fleet.go index 11f27cf328..6600f444ed 100644 --- a/internal/kibana/fleet.go +++ b/internal/kibana/fleet.go @@ -76,11 +76,11 @@ func (cfg FleetConfig) Flags() []string { baseFlags := []string{"-e", "-v", "--force", "--insecure", "--enrollment-token=" + cfg.EnrollmentToken} if common.AgentVersionBase == "8.0.0-SNAPSHOT" { - return append(baseFlags, "--url", fmt.Sprintf("https://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.FleetServerURI, cfg.FleetServerPort)) + return append(baseFlags, "--url", fmt.Sprintf("http://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.FleetServerURI, cfg.FleetServerPort)) } if cfg.ServerPolicyID != "" { - baseFlags = append(baseFlags, "--fleet-server-insecure-http", "--fleet-server", fmt.Sprintf("https://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.ElasticsearchURI, cfg.ElasticsearchPort), "--fleet-server-host=http://0.0.0.0", "--fleet-server-policy", cfg.ServerPolicyID) + baseFlags = append(baseFlags, "--fleet-server-insecure-http", "--fleet-server", fmt.Sprintf("http://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.ElasticsearchURI, cfg.ElasticsearchPort), "--fleet-server-host=http://0.0.0.0", "--fleet-server-policy", cfg.ServerPolicyID) } return append(baseFlags, "--kibana-url", fmt.Sprintf("http://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.KibanaURI, cfg.KibanaPort)) From f85e0889ac0fb6f83a956b7d19eda5fefac38106 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 4 May 2021 17:13:23 +0200 Subject: [PATCH 4/8] chore: remove fleet server policy code We do not need it anymore, as the fleet server is already bootstrapped --- e2e/_suites/fleet/fleet.go | 20 +++++--------------- internal/kibana/fleet.go | 29 ++++------------------------- 2 files changed, 9 insertions(+), 40 deletions(-) diff --git a/e2e/_suites/fleet/fleet.go b/e2e/_suites/fleet/fleet.go index 7eac3eba0f..ba5c570011 100644 --- a/e2e/_suites/fleet/fleet.go +++ b/e2e/_suites/fleet/fleet.go @@ -42,7 +42,6 @@ type FleetTestSuite struct { Installers map[string]installer.ElasticAgentInstaller Integration kibana.IntegrationPackage // the installed integration Policy kibana.Policy - FleetServerPolicy kibana.Policy PolicyUpdatedAt string // the moment the policy was updated Version string // current elastic-agent version kibanaClient *kibana.Client @@ -97,7 +96,7 @@ func (fts *FleetTestSuite) afterScenario() { }).Warn("The enrollment token could not be deleted") } - fts.kibanaClient.DeleteAllPolicies(fts.FleetServerPolicy) + fts.kibanaClient.DeleteAllPolicies(fts.Policy) // clean up fields fts.CurrentTokenID = "" @@ -121,15 +120,6 @@ func (fts *FleetTestSuite) beforeScenario() { } fts.Policy = policy - - fleetServerPolicy, err := fts.kibanaClient.GetDefaultPolicy(true) - if err != nil { - log.WithFields(log.Fields{ - "err": err, - }).Warn("The default fleet server policy could not be obtained") - } - fts.FleetServerPolicy = fleetServerPolicy - } func (fts *FleetTestSuite) contributeSteps(s *godog.ScenarioContext) { @@ -656,7 +646,7 @@ func (fts *FleetTestSuite) theEnrollmentTokenIsRevoked() error { } func (fts *FleetTestSuite) thePolicyShowsTheDatasourceAdded(packageName string) error { - return thePolicyShowsTheDatasourceAdded(fts.kibanaClient, fts.FleetServerPolicy, packageName) + return thePolicyShowsTheDatasourceAdded(fts.kibanaClient, fts.Policy, packageName) } func thePolicyShowsTheDatasourceAdded(client *kibana.Client, policy kibana.Policy, packageName string) error { @@ -696,7 +686,7 @@ func thePolicyShowsTheDatasourceAdded(client *kibana.Client, policy kibana.Polic } func (fts *FleetTestSuite) theIntegrationIsOperatedInThePolicy(packageName string, action string) error { - return theIntegrationIsOperatedInThePolicy(fts.kibanaClient, fts.FleetServerPolicy, packageName, action) + return theIntegrationIsOperatedInThePolicy(fts.kibanaClient, fts.Policy, packageName, action) } func theIntegrationIsOperatedInThePolicy(client *kibana.Client, policy kibana.Policy, packageName string, action string) error { @@ -893,7 +883,7 @@ func (fts *FleetTestSuite) thePolicyIsUpdatedToHaveMode(name string, mode string return godog.ErrPending } - packageDS, err := fts.kibanaClient.GetIntegrationFromAgentPolicy("endpoint", fts.FleetServerPolicy) + packageDS, err := fts.kibanaClient.GetIntegrationFromAgentPolicy("endpoint", fts.Policy) if err != nil { return err @@ -927,7 +917,7 @@ func (fts *FleetTestSuite) thePolicyWillReflectTheChangeInTheSecurityApp() error return err } - pkgPolicy, err := fts.kibanaClient.GetIntegrationFromAgentPolicy("endpoint", fts.FleetServerPolicy) + pkgPolicy, err := fts.kibanaClient.GetIntegrationFromAgentPolicy("endpoint", fts.Policy) if err != nil { return err } diff --git a/internal/kibana/fleet.go b/internal/kibana/fleet.go index 6600f444ed..64ec8dbbea 100644 --- a/internal/kibana/fleet.go +++ b/internal/kibana/fleet.go @@ -7,7 +7,6 @@ package kibana import ( "fmt" - "github.com/elastic/e2e-testing/internal/common" log "github.com/sirupsen/logrus" ) @@ -21,12 +20,9 @@ type FleetConfig struct { KibanaURI string FleetServerPort int FleetServerURI string - // server - ServerPolicyID string } // NewFleetConfig builds a new configuration for the fleet agent, defaulting fleet-server host, ES credentials, URI and port. -// It will also retrieve the default policy ID for fleet server func NewFleetConfig(token string) (*FleetConfig, error) { cfg := &FleetConfig{ EnrollmentToken: token, @@ -39,22 +35,9 @@ func NewFleetConfig(token string) (*FleetConfig, error) { FleetServerURI: "fleet-server", } - client, err := NewClient() - if err != nil { - return cfg, err - } - - defaultFleetServerPolicy, err := client.GetDefaultPolicy(true) - if err != nil { - return nil, err - } - - cfg.ServerPolicyID = defaultFleetServerPolicy.ID - log.WithFields(log.Fields{ "elasticsearch": cfg.ElasticsearchURI, "elasticsearchPort": cfg.ElasticsearchPort, - "policyID": cfg.ServerPolicyID, "token": cfg.EnrollmentToken, }).Debug("Fleet Server config created") @@ -74,14 +57,10 @@ func (cfg FleetConfig) Flags() []string { } */ - baseFlags := []string{"-e", "-v", "--force", "--insecure", "--enrollment-token=" + cfg.EnrollmentToken} - if common.AgentVersionBase == "8.0.0-SNAPSHOT" { - return append(baseFlags, "--url", fmt.Sprintf("http://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.FleetServerURI, cfg.FleetServerPort)) - } - - if cfg.ServerPolicyID != "" { - baseFlags = append(baseFlags, "--fleet-server-insecure-http", "--fleet-server", fmt.Sprintf("http://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.ElasticsearchURI, cfg.ElasticsearchPort), "--fleet-server-host=http://0.0.0.0", "--fleet-server-policy", cfg.ServerPolicyID) + flags := []string{ + "-e", "-v", "--force", "--insecure", "--enrollment-token=" + cfg.EnrollmentToken, + "--url", fmt.Sprintf("http://%s:%d", cfg.FleetServerURI, cfg.FleetServerPort), } - return append(baseFlags, "--kibana-url", fmt.Sprintf("http://%s@%s:%d", cfg.ElasticsearchCredentials, cfg.KibanaURI, cfg.KibanaPort)) + return flags } From b16b0b5c2185e5865ccbdaecd5b9b78a66973545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 4 May 2021 17:54:57 +0200 Subject: [PATCH 5/8] chore: remove all policies but system and fleet_server --- e2e/_suites/fleet/fleet.go | 2 +- e2e/_suites/fleet/stand-alone.go | 2 +- internal/kibana/policies.go | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e/_suites/fleet/fleet.go b/e2e/_suites/fleet/fleet.go index ba5c570011..b7f904673a 100644 --- a/e2e/_suites/fleet/fleet.go +++ b/e2e/_suites/fleet/fleet.go @@ -96,7 +96,7 @@ func (fts *FleetTestSuite) afterScenario() { }).Warn("The enrollment token could not be deleted") } - fts.kibanaClient.DeleteAllPolicies(fts.Policy) + fts.kibanaClient.DeleteAllPolicies() // clean up fields fts.CurrentTokenID = "" diff --git a/e2e/_suites/fleet/stand-alone.go b/e2e/_suites/fleet/stand-alone.go index 9049243fdb..4676207509 100644 --- a/e2e/_suites/fleet/stand-alone.go +++ b/e2e/_suites/fleet/stand-alone.go @@ -55,7 +55,7 @@ func (sats *StandAloneTestSuite) afterScenario() { log.WithField("service", serviceName).Info("Because we are running in development mode, the service won't be stopped") } - sats.kibanaClient.DeleteAllPolicies(sats.FleetPolicy) + sats.kibanaClient.DeleteAllPolicies() } func (sats *StandAloneTestSuite) contributeSteps(s *godog.ScenarioContext) { diff --git a/internal/kibana/policies.go b/internal/kibana/policies.go index 5667a499ae..c8b5b5ba51 100644 --- a/internal/kibana/policies.go +++ b/internal/kibana/policies.go @@ -76,8 +76,8 @@ func (c *Client) ListPolicies() ([]Policy, error) { return resp.Items, nil } -// DeleteAllPolicies deletes all policies -func (c *Client) DeleteAllPolicies(except Policy) { +// DeleteAllPolicies deletes all policies except fleet_server and system +func (c *Client) DeleteAllPolicies() { // Cleanup all package policies packagePolicies, err := c.ListPackagePolicies() if err != nil { @@ -87,7 +87,7 @@ func (c *Client) DeleteAllPolicies(except Policy) { } for _, pkgPolicy := range packagePolicies { // Do not remove the fleet server package integration otherwise fleet server fails to bootstrap - if !strings.Contains(pkgPolicy.Name, "fleet_server") && pkgPolicy.PolicyID == except.ID { + if !strings.Contains(pkgPolicy.Name, "fleet_server") && pkgPolicy.PolicyID == "system" { err = c.DeleteIntegrationFromPolicy(pkgPolicy) if err != nil { log.WithFields(log.Fields{ From af3e7a962de51af7e52c152104a40c9686edd6a6 Mon Sep 17 00:00:00 2001 From: Adam Stokes <51892+adam-stokes@users.noreply.github.com> Date: Tue, 4 May 2021 13:26:49 -0400 Subject: [PATCH 6/8] Update policies.go --- internal/kibana/policies.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/kibana/policies.go b/internal/kibana/policies.go index c8b5b5ba51..d96baaf533 100644 --- a/internal/kibana/policies.go +++ b/internal/kibana/policies.go @@ -87,7 +87,8 @@ func (c *Client) DeleteAllPolicies() { } for _, pkgPolicy := range packagePolicies { // Do not remove the fleet server package integration otherwise fleet server fails to bootstrap - if !strings.Contains(pkgPolicy.Name, "fleet_server") && pkgPolicy.PolicyID == "system" { + if !strings.Contains(pkgPolicy.Name, "fleet_server") && !strings.Contains(pkgPolicy.Name, "system") { + log.WithField("pkgPolicy", pkgPolicy.Name).Trace("Removing package policy") err = c.DeleteIntegrationFromPolicy(pkgPolicy) if err != nil { log.WithFields(log.Fields{ From b240ee24dbaae5b5de1bfc37b8cb92b471eb2fc4 Mon Sep 17 00:00:00 2001 From: Adam Stokes <51892+adam-stokes@users.noreply.github.com> Date: Tue, 4 May 2021 14:19:39 -0400 Subject: [PATCH 7/8] Update fleet.go --- e2e/_suites/fleet/fleet.go | 1 + 1 file changed, 1 insertion(+) diff --git a/e2e/_suites/fleet/fleet.go b/e2e/_suites/fleet/fleet.go index 2db2eb5c2c..14b0a0bc40 100644 --- a/e2e/_suites/fleet/fleet.go +++ b/e2e/_suites/fleet/fleet.go @@ -43,6 +43,7 @@ type FleetTestSuite struct { Integration kibana.IntegrationPackage // the installed integration Policy kibana.Policy PolicyUpdatedAt string // the moment the policy was updated + FleetServerPolicy kibana.Policy Version string // current elastic-agent version kibanaClient *kibana.Client From 06a2bf9b3049bf59cafa8a283550c53eb953b542 Mon Sep 17 00:00:00 2001 From: Adam Stokes <51892+adam-stokes@users.noreply.github.com> Date: Tue, 4 May 2021 14:53:22 -0400 Subject: [PATCH 8/8] Update stand-alone.go --- e2e/_suites/fleet/stand-alone.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e/_suites/fleet/stand-alone.go b/e2e/_suites/fleet/stand-alone.go index bf4b29f3a6..1d0d07cdd2 100644 --- a/e2e/_suites/fleet/stand-alone.go +++ b/e2e/_suites/fleet/stand-alone.go @@ -156,7 +156,7 @@ func (fts *FleetTestSuite) startStandAloneAgent(image string, composeFilename st func (fts *FleetTestSuite) thePolicyShowsTheDatasourceAdded(packageName string) error { log.WithFields(log.Fields{ - "policyID": fts.FleetServerPolicy.ID, + "policyID": fts.Policy.ID, "package": packageName, }).Trace("Checking if the policy shows the package added") @@ -166,11 +166,11 @@ func (fts *FleetTestSuite) thePolicyShowsTheDatasourceAdded(packageName string) exp := common.GetExponentialBackOff(maxTimeout) configurationIsPresentFn := func() error { - packagePolicy, err := fts.kibanaClient.GetIntegrationFromAgentPolicy(packageName, fts.FleetServerPolicy) + packagePolicy, err := fts.kibanaClient.GetIntegrationFromAgentPolicy(packageName, fts.Policy) if err != nil { log.WithFields(log.Fields{ "packagePolicy": packagePolicy, - "policy": fts.FleetServerPolicy, + "policy": fts.Policy, "retry": retryCount, "error": err, }).Warn("The integration was not found in the policy")