Skip to content
This repository has been archived by the owner on Sep 17, 2024. It is now read-only.

chore: remove unused code #1119

Merged
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 16 additions & 26 deletions e2e/_suites/fleet/fleet.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -105,7 +104,6 @@ func (fts *FleetTestSuite) afterScenario() {
fts.CurrentToken = ""
fts.Image = ""
fts.Hostname = ""
fts.FleetServerHostname = ""
}

// beforeScenario creates the state needed by a scenario
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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
Expand All @@ -295,20 +292,15 @@ 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
}
fts.CurrentToken = enrollmentKey.APIKey
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 {
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
}
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
}
Expand Down
49 changes: 0 additions & 49 deletions e2e/_suites/fleet/fleet_server.go

This file was deleted.

5 changes: 3 additions & 2 deletions e2e/_suites/fleet/stand-alone.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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()

Expand Down
13 changes: 6 additions & 7 deletions internal/installer/elasticagent.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
5 changes: 1 addition & 4 deletions internal/installer/tar.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
64 changes: 18 additions & 46 deletions internal/kibana/fleet.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,76 +21,48 @@ 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,
ElasticsearchURI: "elasticsearch",
KibanaPort: 5601,
KibanaURI: "kibana",
FleetServerPort: 8220,
FleetServerURI: fleetServerHost,
FleetServerURI: "fleet-server",
}

client, err := NewClient()
if err != nil {
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"
Expand All @@ -104,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))
Expand Down