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
0 commit comments