Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
address pr comment: expose PROFILE env var
  • Loading branch information
efd6 committed Nov 5, 2025
commit a5249786bba7aed736d7f93cae8a37d87e33c0d4
1 change: 1 addition & 0 deletions docs/howto/script_testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ a stack, starting agents and services and validating results.

## Environment variables

- `PROFILE`: the `elastic-package` profile being used
- `CONFIG_ROOT`: the `elastic-package` configuration root path
- `CONFIG_PROFILES`: the `elastic-package` profiles configuration root path
- `HOME`: the user's home directory path
Expand Down
6 changes: 6 additions & 0 deletions internal/testrunner/script/script.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
"github.com/elastic/elastic-package/internal/cobraext"
"github.com/elastic/elastic-package/internal/configuration/locations"
"github.com/elastic/elastic-package/internal/elasticsearch/ingest"
"github.com/elastic/elastic-package/internal/install"
"github.com/elastic/elastic-package/internal/packages"
"github.com/elastic/elastic-package/internal/packages/changelog"
"github.com/elastic/elastic-package/internal/resources"
Expand All @@ -41,6 +42,10 @@ func Run(dst io.Writer, cmd *cobra.Command, args []string) error {
if err != nil {
return fmt.Errorf("could not find home: %w", err)
}
config, err := install.Configuration()
if err != nil {
return fmt.Errorf("could read configuration: %w", err)
}
loc, err := locations.NewLocationManager()
if err != nil {
return err
Expand Down Expand Up @@ -208,6 +213,7 @@ func Run(dst io.Writer, cmd *cobra.Command, args []string) error {
"get_policy": getPolicyCommand,
},
Setup: func(e *testscript.Env) error {
e.Setenv("PROFILE", config.CurrentProfile())
e.Setenv("CONFIG_ROOT", loc.RootDir())
e.Setenv("CONFIG_PROFILES", loc.ProfileDir())
e.Setenv("HOME", home)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
[!external_stack] skip 'Skipping external stack test.'

# Register stack and check that we get the expected output.
use_stack -profile ${CONFIG_PROFILES}/default
use_stack -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
cmpenv stdout want_use.json

# Install an agent.
install_agent -profile ${CONFIG_PROFILES}/default
install_agent -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
cmp stdout want_agent_up.text

# Bring up a docker container and check that we get the expected output.
docker_up -profile ${CONFIG_PROFILES}/default hello_service
docker_up -profile ${CONFIG_PROFILES}/${PROFILE} hello_service
! stderr .
cp stdout got_up.text
match_file want_up.pattern got_up.text
Expand All @@ -22,14 +22,14 @@ docker_down hello_service
cmp stdout want_down.text

# Uninstall the agent.
uninstall_agent -profile ${CONFIG_PROFILES}/default
uninstall_agent -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
stdout '^deleted agent policies for '${PKG}/${DATA_STREAM}

# Then attempt to take it down again.
! stack_down -profile ${CONFIG_PROFILES}/default
! stack_down -profile ${CONFIG_PROFILES}/${PROFILE}
! stdout .
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/'${PROFILE}'$'

-- hello_service/docker-compose.yml --
version: '3.8'
Expand All @@ -45,7 +45,7 @@ services:
"elasticsearch_username": "elastic",
"elasticsearch_password": "changeme",
"kibana_host": "https://127.0.0.1:5601",
"ca_cert_file": "${CONFIG_PROFILES}/default/certs/ca-cert.pem"
"ca_cert_file": "${CONFIG_PROFILES}/${PROFILE}/certs/ca-cert.pem"
}
-- want_up.pattern --
deployed elastic-package-service-[0-9]+:hello_service-1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,30 @@
[!exec:jq] skip 'Skipping test requiring absent jq command'

# Register stack and check that we get the expected output.
use_stack -profile ${CONFIG_PROFILES}/default
use_stack -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
cmpenv stdout want_use.json

# Install an agent.
install_agent -profile ${CONFIG_PROFILES}/default NETWORK_NAME
install_agent -profile ${CONFIG_PROFILES}/${PROFILE} NETWORK_NAME
! stderr .
cmp stdout want_agent_up.text
# Check the network name is valid.
exec echo ${NETWORK_NAME}
stdout 'elastic-package-agent-with_script-first-[0-9]+_default'

# Bring up a docker container and check that we get the expected output.
docker_up -profile ${CONFIG_PROFILES}/default -network ${NETWORK_NAME} test-hits
docker_up -profile ${CONFIG_PROFILES}/${PROFILE} -network ${NETWORK_NAME} test-hits
! stderr .
cp stdout got_up.text
match_file want_up.pattern got_up.text

# Add the package resources.
add_package -profile ${CONFIG_PROFILES}/default
add_package -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .

# Add the data stream.
add_data_stream -profile ${CONFIG_PROFILES}/default test_config.yaml DATA_STREAM_NAME
add_data_stream -profile ${CONFIG_PROFILES}/${PROFILE} test_config.yaml DATA_STREAM_NAME
! stderr .
cmpenv stdout want_add_data_stream.text
exec echo ${DATA_STREAM_NAME}
Expand All @@ -35,7 +35,7 @@ match_file want_data_stream_name.pattern got_data_stream_name.text

# Check that no policy exists yet.
# No timeout so we do only a single poll.
get_policy -profile ${CONFIG_PROFILES}/default ${DATA_STREAM_NAME}
get_policy -profile ${CONFIG_PROFILES}/${PROFILE} ${DATA_STREAM_NAME}
stdout 'not found'

# Start the service.
Expand All @@ -45,7 +45,7 @@ docker_signal test-hits SIGHUP
docker_wait_exit -timeout 5m test-hits

# Check that we can see our policy.
get_policy -profile ${CONFIG_PROFILES}/default -timeout 1m ${DATA_STREAM_NAME}
get_policy -profile ${CONFIG_PROFILES}/${PROFILE} -timeout 1m ${DATA_STREAM_NAME}
cp stdout got_policy.json
exec jq '.name=="'${DATA_STREAM_NAME}'"' got_policy.json
stdout true
Expand All @@ -57,32 +57,32 @@ cp stdout got_down.text
match_file want_down.pattern got_down.text

# Get documents from the data stream.
get_docs -profile ${CONFIG_PROFILES}/default -want 10 -timeout 5m ${DATA_STREAM_NAME}
get_docs -profile ${CONFIG_PROFILES}/${PROFILE} -want 10 -timeout 5m ${DATA_STREAM_NAME}
cp stdout got_docs.json

# Let's upgrade!
upgrade_package_latest -profile ${CONFIG_PROFILES}/default
upgrade_package_latest -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
stdout 'upgraded package '${PKG}' from version '${CURRENT_VERSION@R}

# Remove the data stream.
remove_data_stream -profile ${CONFIG_PROFILES}/default ${DATA_STREAM_NAME}
remove_data_stream -profile ${CONFIG_PROFILES}/${PROFILE} ${DATA_STREAM_NAME}
! stderr .
cmpenv stdout want_remove_data_stream.text

# Uninstall the agent.
uninstall_agent -profile ${CONFIG_PROFILES}/default -timeout 1m
uninstall_agent -profile ${CONFIG_PROFILES}/${PROFILE} -timeout 1m
stdout '^deleted agent policies for '${PKG}/${DATA_STREAM}
! stderr .

# Remove the package resources.
remove_package -profile ${CONFIG_PROFILES}/default
remove_package -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .

# Then attempt to take the stack down even though we don't own it.
! stack_down -profile ${CONFIG_PROFILES}/default
! stack_down -profile ${CONFIG_PROFILES}/${PROFILE}
! stdout .
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/'${PROFILE}'$'

-- test-hits/docker-compose.yml --
version: '2.3'
Expand Down Expand Up @@ -110,7 +110,7 @@ ntpd[2959]: ntpd gelit-r tatno
"elasticsearch_username": "elastic",
"elasticsearch_password": "changeme",
"kibana_host": "https://127.0.0.1:5601",
"ca_cert_file": "${CONFIG_PROFILES}/default/certs/ca-cert.pem"
"ca_cert_file": "${CONFIG_PROFILES}/${PROFILE}/certs/ca-cert.pem"
}
-- want_up.pattern --
deployed elastic-package-service-[0-9]+:test-hits-1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,37 @@
date START

# Register stack and check that we get the expected output.
use_stack -profile ${CONFIG_PROFILES}/default
use_stack -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
cmpenv stdout want_use.json

# Install the data stream's pipeline.
install_pipelines -profile ${CONFIG_PROFILES}/default ${DATA_STREAM_ROOT}
install_pipelines -profile ${CONFIG_PROFILES}/${PROFILE} ${DATA_STREAM_ROOT}
! stderr .
stdout '^installed pipelines in '${DATA_STREAM}' with nonce'

# Run a simulation with the data.
simulate -profile ${CONFIG_PROFILES}/default ${DATA_STREAM_ROOT} default data.json
simulate -profile ${CONFIG_PROFILES}/${PROFILE} ${DATA_STREAM_ROOT} default data.json
! stderr .
cmp stdout want.json

# Uninstall pipelines.
uninstall_pipelines -profile ${CONFIG_PROFILES}/default ${DATA_STREAM_ROOT}
uninstall_pipelines -profile ${CONFIG_PROFILES}/${PROFILE} ${DATA_STREAM_ROOT}
! stderr .
stdout '^uninstalled pipelines in '${DATA_STREAM}

# Put logs in the work directory check for existence.
dump_logs -profile ${CONFIG_PROFILES}/default -since ${START}
dump_logs -profile ${CONFIG_PROFILES}/${PROFILE} -since ${START}
exists ${WORK}/logs/elastic-agent.log
exists ${WORK}/logs/elasticsearch.log
exists ${WORK}/logs/fleet-server.log
exists ${WORK}/logs/kibana.log
exists ${WORK}/logs/package-registry.log

# Then attempt to take it down again.
! stack_down -profile ${CONFIG_PROFILES}/default
! stack_down -profile ${CONFIG_PROFILES}/${PROFILE}
! stdout .
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/'${PROFILE}'$'

-- want_use.json --
{
Expand All @@ -42,7 +42,7 @@ stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
"elasticsearch_username": "elastic",
"elasticsearch_password": "changeme",
"kibana_host": "https://127.0.0.1:5601",
"ca_cert_file": "${CONFIG_PROFILES}/default/certs/ca-cert.pem"
"ca_cert_file": "${CONFIG_PROFILES}/${PROFILE}/certs/ca-cert.pem"
}
-- data.json --
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,37 @@
date START

# Register stack and check that we get the expected output.
use_stack -profile ${CONFIG_PROFILES}/default
use_stack -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
cmpenv stdout want_use.json

# Install the data stream's pipeline.
install_pipelines -profile ${CONFIG_PROFILES}/default ${WORK}
install_pipelines -profile ${CONFIG_PROFILES}/${PROFILE} ${WORK}
! stderr .
stdout '^installed pipelines in .* with nonce'

# Run a simulation with the data.
simulate -profile ${CONFIG_PROFILES}/default ${WORK} default data.json
simulate -profile ${CONFIG_PROFILES}/${PROFILE} ${WORK} default data.json
! stderr .
cmp stdout want.json

# Uninstall pipelines.
uninstall_pipelines -profile ${CONFIG_PROFILES}/default ${WORK}
uninstall_pipelines -profile ${CONFIG_PROFILES}/${PROFILE} ${WORK}
! stderr .
stdout '^uninstalled pipelines in'

# Put logs in the work directory check for existence.
dump_logs -profile ${CONFIG_PROFILES}/default -since ${START}
dump_logs -profile ${CONFIG_PROFILES}/${PROFILE} -since ${START}
exists ${WORK}/logs/elastic-agent.log
exists ${WORK}/logs/elasticsearch.log
exists ${WORK}/logs/fleet-server.log
exists ${WORK}/logs/kibana.log
exists ${WORK}/logs/package-registry.log

# Then attempt to take it down again.
! stack_down -profile ${CONFIG_PROFILES}/default
! stack_down -profile ${CONFIG_PROFILES}/${PROFILE}
! stdout .
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/'${PROFILE}'$'

-- want_use.json --
{
Expand All @@ -42,7 +42,7 @@ stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
"elasticsearch_username": "elastic",
"elasticsearch_password": "changeme",
"kibana_host": "https://127.0.0.1:5601",
"ca_cert_file": "${CONFIG_PROFILES}/default/certs/ca-cert.pem"
"ca_cert_file": "${CONFIG_PROFILES}/${PROFILE}/certs/ca-cert.pem"
}
-- data.json --
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@
[!exec:curl] skip 'Skipping test requiring absent curl command'

# Register stack and check that we get the expected output.
use_stack -profile ${CONFIG_PROFILES}/default
use_stack -profile ${CONFIG_PROFILES}/${PROFILE}
! stderr .
cmpenv stdout want_use.json

exec curl -s -O 'https://epr.elastic.co/epr/cel/cel-0.1.0.zip'

add_package_zip -profile ${CONFIG_PROFILES}/default cel-0.1.0.zip
add_package_zip -profile ${CONFIG_PROFILES}/${PROFILE} cel-0.1.0.zip
! stderr .
stdout 'added zipped package resources in '${WORK@R}'/cel-0\.1\.0\.zip for cel in test for with_script'

remove_package_zip -profile ${CONFIG_PROFILES}/default cel-0.1.0.zip
remove_package_zip -profile ${CONFIG_PROFILES}/${PROFILE} cel-0.1.0.zip
! stderr .
stdout 'removed zipped package resources in '${WORK@R}'/cel-0\.1\.0\.zip for cel in test for with_script'

# Then attempt to take it down again.
! stack_down -profile ${CONFIG_PROFILES}/default
! stack_down -profile ${CONFIG_PROFILES}/${PROFILE}
! stdout .
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/'${PROFILE}'$'

-- want_use.json --
{
Expand All @@ -28,5 +28,5 @@ stderr '^cannot take down externally run stack '${CONFIG_PROFILES}'/default$'
"elasticsearch_username": "elastic",
"elasticsearch_password": "changeme",
"kibana_host": "https://127.0.0.1:5601",
"ca_cert_file": "${CONFIG_PROFILES}/default/certs/ca-cert.pem"
"ca_cert_file": "${CONFIG_PROFILES}/${PROFILE}/certs/ca-cert.pem"
}