Skip to content

Commit 1a5982e

Browse files
committed
test out the OOM testing pipeline integration
1 parent d264ed4 commit 1a5982e

File tree

3 files changed

+135
-17
lines changed

3 files changed

+135
-17
lines changed
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
PACKAGE_VERSION=$(yq -r '.version' ./packages/security_detection_engine/manifest.yml)
6+
EPR_INSTANCE_NAME="bk-epr-prebuilt-rules-oom-testing-$BUILDKITE_BUILD_NUMBER"
7+
GCP_ZONE="us-west2-a"
8+
9+
# gcloud compute instances create "$EPR_INSTANCE_NAME" \
10+
# --zone=us-west2-a \
11+
# --machine-type=e2-small \
12+
# --network-interface=network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=default \
13+
# # --maintenance-policy=MIGRATE \
14+
# --provisioning-model=STANDARD \
15+
# # --scopes=https://www.googleapis.com/auth/devstorage.read_only,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/trace.append \
16+
# --tags=https-server \
17+
# --create-disk=auto-delete=yes,boot=yes,device-name=instance-20251031-131502,image="$EPR_VM_IMAGE",mode=rw,size=10,type=pd-standard \
18+
# --no-shielded-secure-boot \
19+
# --no-shielded-vtpm \
20+
# --no-shielded-integrity-monitoring \
21+
# --labels=goog-ec-src=vm_add-gcloud \
22+
# --reservation-affinity=any
23+
# --quiet
24+
# echo "--- Deploy EPR instance: $EPR_INSTANCE_NAME (Mock)"
25+
26+
# Save and upload cloud-init configuration
27+
cat <<YAML > cloud-init.yaml
28+
package_update: true
29+
package_upgrade: true
30+
packages:
31+
- docker.io
32+
- openssl
33+
34+
runcmd:
35+
- mkdir -p /etc/package-registry/packages
36+
- chmod 0777 /etc/package-registry/packages
37+
38+
- mkdir -p /etc/package-registry/certs
39+
- openssl req -x509 -nodes -newkey rsa:4096 -keyout /etc/package-registry/certs/package-registry.key -out /etc/package-registry/certs/package-registry.crt -subj "/CN=$(curl -s ifconfig.me)" -days 3650
40+
41+
- docker pull docker.elastic.co/package-registry/package-registry:main
42+
- docker run -d --name package-registry --restart always -p 443:8443 -v /etc/package-registry/packages:/packages/package-registry:ro -v /etc/package-registry/certs:/etc/package-registry/certs:ro docker.elastic.co/package-registry/package-registry:main --address=0.0.0.0:8443 --tls-key=/etc/package-registry/certs/package-registry.key --tls-cert=/etc/package-registry/certs/package-registry.crt
43+
YAML
44+
45+
buildkite-agent artifact upload cloud-init.yaml
46+
47+
48+
# Trigger the OOM testing pipeline
49+
cat <<YAML | buildkite-agent pipeline upload
50+
steps:
51+
- key: 'deploy-epr-instance-$BUILDKITE_BUILD_NUMBER'
52+
label: ':package::sparkles: [security_detection_engine] Deploying EPR instance'
53+
agents:
54+
provider: gcp
55+
image: ${IMAGE_UBUNTU_X86_64}
56+
plugins:
57+
- elastic/oblt-google-auth#v1.3.0:
58+
lifetime: 10800 # seconds
59+
project-id: "elastic-kibana-184716"
60+
project-number: "261553193300"
61+
commands:
62+
- buildkite-agent artifact download cloud-init.yaml .
63+
- |
64+
gcloud compute instances create "$EPR_INSTANCE_NAME" \
65+
--zone="$GCP_ZONE" \
66+
--machine-type=e2-micro \
67+
--network-interface=network-tier=PREMIUM,stack-type=IPV4_ONLY,subnet=default \
68+
--provisioning-model=STANDARD \
69+
--tags=https-server \
70+
--create-disk=auto-delete=yes,boot=yes,device-name="$EPR_INSTANCE_NAME",image=projects/cos-cloud/global/images/cos-109-17800-570-50,mode=rw,size=10,type=pd-standard \
71+
--labels=goog-ec-src=vm_add-gcloud \
72+
--reservation-affinity=any \
73+
--metadata-from-file=user-data=cloud-init.yaml \
74+
--quiet
75+
- (cd ./packages && zip -r ../security_detection_engine.zip ./security_detection_engine)
76+
- while :; do sleep 1m && gcloud compute scp --recurse ./security_detection_engine.zip maxim_palenov@maximpn-epr-docker:/etc/package-registry/packages/ --zone "$GCP_ZONE" done
77+
- buildkite-agent env set EC_PLAN_PROP_FLEET_REGISTRY_URL \$(gcloud compute instances describe "$EPR_INSTANCE_NAME" --zone="$GCP_ZONE" --format='get(networkInterfaces[0].accessConfigs[0].natIP)')
78+
- key: 'run-oom-testing-$BUILDKITE_BUILD_NUMBER'
79+
label: ":bar_chart: [security_detection_engine] Trigger OOM testing pipeline"
80+
depends_on:
81+
- step: 'deploy-epr-instance-$BUILDKITE_BUILD_NUMBER'
82+
allow_failure: false
83+
trigger: "appex-qa-stateful-security-prebuilt-rules-ftr-oom-testing"
84+
async: false
85+
build:
86+
env:
87+
EC_PLAN_PROP_FLEET_REGISTRY_URL: unknown
88+
EC_PLAN_PROP_PREBUILT_RULES_PACKAGE_VERSION: "$PACKAGE_VERSION"
89+
- key: 'remove-epr-instance-$BUILDKITE_BUILD_NUMBER'
90+
label: ":broom::sparkles: [security_detection_engine] Removing EPR instance"
91+
depends_on:
92+
- step: 'run-oom-testing-$BUILDKITE_BUILD_NUMBER'
93+
allow_failure: true
94+
agents:
95+
provider: gcp
96+
image: ${IMAGE_UBUNTU_X86_64}
97+
plugins:
98+
- elastic/oblt-google-auth#v1.3.0:
99+
lifetime: 10800 # seconds
100+
project-id: "elastic-kibana-184716"
101+
project-number: "261553193300"
102+
command: |
103+
gcloud compute instances delete $EPR_INSTANCE_NAME --zone=us-west2-a --delete-disks=all --quiet
104+
YAML
105+
106+
# echo "--- :broom::sparkles: Remove EPR instance: $EPR_INSTANCE_NAME (Mock)"
107+
# gcloud compute instances delete $EPR_INSTANCE_NAME --zone=us-west2-a --delete-disks=all --quiet

.buildkite/scripts/test_one_package.sh

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,28 @@ add_bin_path
1919

2020
with_yq
2121
with_mage
22-
with_docker
23-
with_docker_compose_plugin
24-
with_kubernetes
22+
# with_docker
23+
# with_docker_compose_plugin
24+
# with_kubernetes
2525

2626
use_elastic_package
2727

28-
pushd packages > /dev/null
29-
exit_code=0
30-
if ! process_package "${package}" ; then
31-
# keep this message as a collapsed group in Buildkite, so it
32-
# is not hidden by the previous collapsed group.
33-
echo "--- [${package}] failed"
34-
exit_code=1
28+
# pushd packages > /dev/null
29+
# exit_code=0
30+
# if ! process_package "${package}" ; then
31+
# # keep this message as a collapsed group in Buildkite, so it
32+
# # is not hidden by the previous collapsed group.
33+
# echo "--- [${package}] failed"
34+
# exit_code=1
35+
# fi
36+
# popd > /dev/null
37+
38+
if [ -x "./.buildkite/scripts/packages/$package.sh" ]; then
39+
echo "--- [${package}] Run individual package checker"
40+
"./.buildkite/scripts/packages/$package.sh"
41+
else
42+
echo "--- [${package}] Individual package checker ./packages/$package.sh is not found, continuing..."
3543
fi
36-
popd > /dev/null
3744

45+
exit_code=0
3846
exit "${exit_code}"

.buildkite/scripts/trigger_integrations_in_parallel.sh

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,21 @@ fi
5151

5252
packages_to_test=0
5353

54+
PACKAGE_LIST="security_detection_engine"
55+
5456
for package in ${PACKAGE_LIST}; do
5557
# check if needed to create an step for this package
5658
echo "--- [$package] check if it is required to be tested"
5759
pushd "packages/${package}" > /dev/null
5860
skip_package="false"
5961
failure="false"
60-
if ! reason=$(is_pr_affected "${package}" "${from}" "${to}") ; then
61-
skip_package="true"
62-
if [[ "${reason}" == "${FATAL_ERROR}" ]]; then
63-
failure=true
64-
fi
65-
fi
62+
reason="-"
63+
# if ! reason=$(is_pr_affected "${package}" "${from}" "${to}") ; then
64+
# skip_package="true"
65+
# if [[ "${reason}" == "${FATAL_ERROR}" ]]; then
66+
# failure=true
67+
# fi
68+
# fi
6669
popd > /dev/null
6770
if [[ "${failure}" == "true" ]]; then
6871
echo "Unexpected failure checking ${package}"

0 commit comments

Comments
 (0)