Skip to content

Commit ff3898c

Browse files
SSI: Allow use the installer from binaries (#5485)
1 parent 01df04a commit ff3898c

File tree

7 files changed

+78
-21
lines changed

7 files changed

+78
-21
lines changed

utils/build/ssi/base/base_ssi.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ FROM ${BASE_IMAGE}
44

55
WORKDIR /workdir
66

7-
COPY ./base/install_script_ssi.sh ./
7+
COPY ./base/install_script_ssi.sh ./base/binaries/* ./
88

99
ARG DD_API_KEY=deadbeef
1010

utils/build/ssi/base/install_script_ssi.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,12 @@ if [ -n "${DD_INSTALLER_INJECTOR_VERSION}" ]; then
4040
export DD_INSTALLER_DEFAULT_PKG_VERSION_DATADOG_APM_INJECT="${DD_INSTALLER_INJECTOR_VERSION}"
4141
fi
4242

43-
DD_REPO_URL=${DD_injection_repo_url} DD_INSTALL_ONLY=true DD_APM_INSTRUMENTATION_ENABLED=host bash -c "$(curl -L https://dd-agent.s3.amazonaws.com/scripts/install_script_agent7.sh)"
43+
if [ -f "install_script_agent7.sh" ]; then
44+
echo "[TRACE] install_script_agent7.sh exists"
45+
DD_REPO_URL=${DD_injection_repo_url} DD_INSTALL_ONLY=true DD_APM_INSTRUMENTATION_ENABLED=host bash -c "$(cat install_script_agent7.sh)"
46+
else
47+
DD_REPO_URL=${DD_injection_repo_url} DD_INSTALL_ONLY=true DD_APM_INSTRUMENTATION_ENABLED=host bash -c "$(curl -L https://dd-agent.s3.amazonaws.com/scripts/install_script_agent7.sh)"
48+
fi
4449

4550
if [ -f /etc/debian_version ] || [ "$DISTRIBUTION" == "Debian" ] || [ "$DISTRIBUTION" == "Ubuntu" ]; then
4651
OS="Debian"

utils/build/virtual_machine/provisions/auto-inject/auto-inject_installer_manual.yml

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
local_path: utils/build/virtual_machine/provisions/auto-inject/tracer_debug/debug_config.yaml
66
- name: copy-docker-config
77
local_path: utils/build/virtual_machine/provisions/auto-inject/docker/docker_config.yaml
8+
- name: copy-binaries
9+
local_path: binaries/
810

911
remote-command: |
1012
if [ "${DD_env}" == "dev" ]; then
@@ -79,23 +81,31 @@
7981
echo "APPLICATION MONITORING CONFIG:"
8082
sudo cat /etc/datadog-agent/application_monitoring.yaml || true
8183
82-
# dns install.datadoghq.com or the network interfaces are no very steady, so we need to retry
83-
# On the old machines the curl command doesn't support the --retry-connrefused flag, we implement the retry policy in a loop
84-
# standard exec: DD_REPO_URL=${DD_injection_repo_url} bash -c "$(curl -L https://dd-agent.s3.amazonaws.com/scripts/install_script_agent7.sh)"
85-
MAX_RETRIES=5
86-
RETRY_DELAY=5
87-
COUNTER=0
88-
89-
while [ $COUNTER -lt $MAX_RETRIES ]; do
90-
curl -L https://dd-agent.s3.amazonaws.com/scripts/install_script_agent7.sh -o install_script.sh && break
91-
echo "Retrying in $RETRY_DELAY seconds..."
92-
sleep $RETRY_DELAY
93-
((COUNTER++))
94-
done
95-
96-
if [ $COUNTER -eq $MAX_RETRIES ]; then
97-
echo "Failed to connect to install.datadoghq.com the script after $MAX_RETRIES attempts"
98-
exit 1
84+
# Check if install script exists locally in binaries folder
85+
if [ -f "install_script_agent7.sh" ]; then
86+
echo "*** Execute installation script from provided binaries ***"
87+
cp install_script_agent7.sh install_script.sh
88+
chmod +x install_script.sh
89+
else
90+
echo "Download installation script from S3"
91+
# dns install.datadoghq.com or the network interfaces are no very steady, so we need to retry
92+
# On the old machines the curl command doesn't support the --retry-connrefused flag, we implement the retry policy in a loop
93+
# standard exec: DD_REPO_URL=${DD_injection_repo_url} bash -c "$(curl -L https://dd-agent.s3.amazonaws.com/scripts/install_script_agent7.sh)"
94+
MAX_RETRIES=5
95+
RETRY_DELAY=5
96+
COUNTER=0
97+
98+
while [ $COUNTER -lt $MAX_RETRIES ]; do
99+
curl -L https://dd-agent.s3.amazonaws.com/scripts/install_script_agent7.sh -o install_script.sh && break
100+
echo "Retrying in $RETRY_DELAY seconds..."
101+
sleep $RETRY_DELAY
102+
((COUNTER++))
103+
done
104+
105+
if [ $COUNTER -eq $MAX_RETRIES ]; then
106+
echo "Failed to connect to install.datadoghq.com the script after $MAX_RETRIES attempts"
107+
exit 1
108+
fi
99109
fi
100110
101111
DD_REPO_URL=${DD_injection_repo_url} bash -c "$(cat install_script.sh)"
@@ -111,6 +121,10 @@
111121
112122
for i in 1 2 3 4 5; do sudo datadog-installer apm instrument docker && break || sleep 1; done
113123
- os_type: windows
124+
copy_files:
125+
- name: copy-binaries
126+
local_path: binaries/
127+
114128
remote-command: |
115129
if ($env:DD_env -eq "dev") {
116130
$env:DD_INSTALLER_REGISTRY_URL = "install.datad0g.com";
@@ -145,5 +159,14 @@
145159
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
146160
$env:DD_SITE = "datadoghq.com";
147161
$env:DD_APM_INSTRUMENTATION_ENABLED = "iis"
148-
(New-Object System.Net.WebClient).DownloadFile('https://install.datadoghq.com/Install-Datadog.ps1', 'C:\Windows\SystemTemp\Install-Datadog.ps1');
162+
163+
# Check if Install-Datadog.ps1 exists locally in binaries folder
164+
if (Test-Path "Install-Datadog.ps1") {
165+
Write-Host "*** Execute installation script from provided binaries ***"
166+
Copy-Item "Install-Datadog.ps1" -Destination "C:\Windows\SystemTemp\Install-Datadog.ps1" -Force
167+
} else {
168+
Write-Host "Download installation script from datadoghq.com"
169+
(New-Object System.Net.WebClient).DownloadFile('https://install.datadoghq.com/Install-Datadog.ps1', 'C:\Windows\SystemTemp\Install-Datadog.ps1');
170+
}
171+
149172
C:\Windows\SystemTemp\Install-Datadog.ps1

utils/build/virtual_machine/provisions/auto-inject/repositories/autoinstall/execute_install_script.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,19 @@ fi
6262

6363
sudo sh -c "sudo mkdir -p /etc/datadog-agent && printf \"api_key: ${DD_API_KEY}\nsite: datadoghq.com\n\" > /etc/datadog-agent/datadog.yaml"
6464

65+
if [ -f "install_script_agent7.sh" ]; then
66+
echo "*** Execute installation script from provided binaries ***"
67+
cp install_script_agent7.sh install_script.sh
68+
chmod +x install_script.sh
69+
else
70+
echo "Download installation script from S3"
71+
curl -L "$INSTALLER_URL" -o install_script.sh
72+
fi
73+
6574
# shellcheck disable=SC2154
6675
DD_REPO_URL="$DD_injection_repo_url" \
6776
DD_APM_INSTRUMENTATION_LANGUAGES="$DD_LANG" \
68-
bash -c "$(curl -L "$INSTALLER_URL")"
77+
bash -c "$(cat install_script.sh)"
6978

7079
sudo cp /tmp/datadog-installer-*.log /var/log/datadog
7180

utils/build/virtual_machine/provisions/container-auto-inject-install-script/auto-inject_container_script.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
local_path: utils/build/virtual_machine/provisions/auto-inject/tracer_debug/debug_config.yaml
1010
- name: copy-agent-docker-compose
1111
local_path: utils/build/virtual_machine/provisions/auto-inject/docker/docker-compose-agent-prod.yml
12+
- name: copy-binaries
13+
local_path: binaries/
1214
remote-command: |
1315
#Env variables set on the scenario definition. Write to file and load
1416
SCENARIO_AGENT_ENV="${DD_AGENT_ENV:-''}"

utils/build/virtual_machine/provisions/host-auto-inject-install-script/auto-inject_host_script.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
local_path: utils/build/virtual_machine/provisions/auto-inject/repositories/autoinstall/execute_install_script.sh
66
- name: copy-tracer-debug-config
77
local_path: utils/build/virtual_machine/provisions/auto-inject/tracer_debug/debug_config.yaml
8+
- name: copy-binaries
9+
local_path: binaries/
810
remote-command: |
911
# Env variables set on the scenario definition. Write to file and load
1012
SCENARIO_AGENT_ENV="${DD_AGENT_ENV:-''}"

utils/scripts/ssi_wizards/docker_ssi_wizard.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,23 @@ run_the_tests(){
271271
read -p "⚠️ Do you want to execute the command? (y/n): " CONFIRM
272272
if [[ "$CONFIRM" == "y" ]]; then
273273
echo -e "${GREEN}▶️ Executing the command...${NC}"
274+
275+
# Copy binaries folder to Docker build context
276+
cp -r binaries utils/build/ssi/base/binaries
277+
echo -e "${CYAN}ℹ️ Copied binaries folder to build context${NC}"
278+
279+
# Execute the command
274280
"${CMD[@]}"
281+
282+
# Store exit code
283+
TEST_EXIT_CODE=$?
284+
285+
# Remove binaries folder after tests
286+
rm -rf utils/build/ssi/base/binaries
287+
echo -e "${CYAN}ℹ️ Removed binaries folder from build context${NC}"
288+
289+
# Return the original exit code
290+
exit $TEST_EXIT_CODE
275291
else
276292
echo -e "${RED}❌ Execution canceled.${NC}"
277293
fi

0 commit comments

Comments
 (0)