Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
293afea
add node group creating and deletion scripts
Kookster310 Mar 13, 2026
b1b9cdb
update ref on performanceTests job
Kookster310 Mar 13, 2026
b779628
fix branch
Kookster310 Mar 13, 2026
3641c8e
fix scheduling and db storageclass values
Kookster310 Mar 13, 2026
a0d393c
re-add deploy-perf-instance.sh
Kookster310 Mar 13, 2026
02f6a74
yea longhorn for mysql
Kookster310 Mar 13, 2026
bd585ce
use local-path for mysql
Kookster310 Mar 13, 2026
ad0042e
install helm release into default ns
Kookster310 Mar 13, 2026
d44f8bf
fix nfs security group to be able to mount efs to new node group
Kookster310 Mar 14, 2026
2b9d428
fix cleanup
Kookster310 Mar 14, 2026
ccb6fea
remove original plan .md
Kookster310 Mar 14, 2026
2d45297
set name tag on ec2 instance
Kookster310 Mar 14, 2026
f33c810
change baseline from hardcoded develop to the base branch of PR
Kookster310 Mar 16, 2026
15df115
add git token to checkout automated performance tests
Kookster310 Mar 16, 2026
de96606
wait for tls cert
Kookster310 Mar 16, 2026
1c5c310
append random suffix to performance URLS to avoid letsencrypt
Kookster310 Mar 16, 2026
c9a8797
clean up performance summary comment and add comparison
Kookster310 Mar 16, 2026
a21ba6a
base image build on ci:performance-tests
Kookster310 Mar 16, 2026
e1b8ecc
add cert deletion if tls not ready
Kookster310 Mar 17, 2026
db2bd31
generate tokens on web pod
Kookster310 Mar 17, 2026
913f0c1
discover tests and iterate any found
Kookster310 Mar 17, 2026
45ee6ea
add googleApiToken place holder
Kookster310 Mar 17, 2026
3a52b66
deploy separate node groups for baseline and update.
Kookster310 Mar 17, 2026
815ec93
remove tests timeout
Kookster310 Mar 17, 2026
8f4ecac
fix indentation
Kookster310 Mar 17, 2026
f909656
make deploy-perf-instance.sh executable in deploy update job
Kookster310 Mar 17, 2026
635d9a9
update security group change
Kookster310 Mar 17, 2026
1a27222
add force cleanup for stuck pods
Kookster310 Mar 17, 2026
4cadf53
update permissions on perfComment
Kookster310 Mar 17, 2026
304b263
fix body reporting
Kookster310 Mar 17, 2026
677efd9
remove debug info
Kookster310 Mar 17, 2026
591f9e2
Update bearer token
nolanpro Mar 19, 2026
0384b91
add performance metrics tag validation script. only run tests that ma…
Kookster310 Mar 25, 2026
4e196a7
fix pr tag to look for ci:performance-tests:*
Kookster310 Mar 25, 2026
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
fix nfs security group to be able to mount efs to new node group
  • Loading branch information
Kookster310 committed Mar 14, 2026
commit d44f8bff688254bc5e064cf93a6c0e88bdf69685
35 changes: 33 additions & 2 deletions .github/scripts/create-perf-nodegroup.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
#!/usr/bin/env bash
# Create a dedicated EKS node group for performance tests.
# Usage: INSTANCE=<10-char-id> [EKS_CLUSTER_NAME=pm4-eng] [AWS_REGION=us-east-1] ./create-perf-nodegroup.sh
# Requires: aws CLI, credentials with eks:CreateNodegroup and eks:DescribeCluster, eks:ListNodegroups, eks:DescribeNodegroup
# Usage: INSTANCE=<10-char-id> [EKS_CLUSTER_NAME=pm4-eng] [AWS_REGION=us-east-1] [EFS_SECURITY_GROUP_ID=sg-...] ./create-perf-nodegroup.sh
# Requires: aws CLI, credentials with eks:CreateNodegroup, eks:DescribeCluster, ec2:DescribeInstances, ec2:AuthorizeSecurityGroupIngress
set -euo pipefail

INSTANCE="${INSTANCE:?INSTANCE is required (10-char instance id)}"
EKS_CLUSTER_NAME="${EKS_CLUSTER_NAME:-pm4-eng}"
AWS_REGION="${AWS_REGION:-us-east-1}"
# EFS mount target security group; must allow NFS (2049) from perf nodes so they can mount EFS.
EFS_SECURITY_GROUP_ID="${EFS_SECURITY_GROUP_ID:-sg-019a2068045d7a240}"
NODEGROUP_NAME="perf-ci-${INSTANCE}"
TAINT_KEY="performance"
TAINT_VALUE="ci-${INSTANCE}"
Expand Down Expand Up @@ -58,3 +60,32 @@ aws eks wait nodegroup-active \
--nodegroup-name "${NODEGROUP_NAME}" \
--region "${AWS_REGION}"
echo "Node group ${NODEGROUP_NAME} is ACTIVE."

# Allow NFS (port 2049) from perf node group to EFS so pods can mount efs-sc volumes.
echo "Allowing NFS from perf node group into EFS security group ${EFS_SECURITY_GROUP_ID}..."
max_tries=12
for i in $(seq 1 "${max_tries}"); do
NODE_SGS=$(aws ec2 describe-instances --region "${AWS_REGION}" \
--filters "Name=tag:eks:nodegroup-name,Values=${NODEGROUP_NAME}" "Name=instance-state-name,Values=running" \
--query 'Reservations[].Instances[].SecurityGroups[].GroupId' --output text | tr '\t' '\n' | sort -u)
if [ -n "${NODE_SGS}" ]; then
break
fi
echo "Waiting for instances in ${NODEGROUP_NAME} (attempt ${i}/${max_tries})..."
sleep 10
done
if [ -z "${NODE_SGS}" ]; then
echo "WARNING: No instances found in ${NODEGROUP_NAME}; skipping EFS SG rule. EFS mounts may fail."
exit 0
fi
for sg in ${NODE_SGS}; do
if [ "${sg}" = "${EFS_SECURITY_GROUP_ID}" ]; then
continue
fi
echo "Adding inbound rule to ${EFS_SECURITY_GROUP_ID}: TCP 2049 from ${sg}"
aws ec2 authorize-security-group-ingress --region "${AWS_REGION}" \
--group-id "${EFS_SECURITY_GROUP_ID}" \
--protocol tcp --port 2049 \
--source-group "${sg}" 2>/dev/null || echo "Rule may already exist; continuing."
done
echo "EFS security group updated."
20 changes: 19 additions & 1 deletion .github/scripts/delete-perf-nodegroup.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
#!/usr/bin/env bash
# Delete the dedicated EKS node group for performance tests.
# Usage: INSTANCE=<10-char-id> [EKS_CLUSTER_NAME=pm4-eng] [AWS_REGION=us-east-1] ./delete-perf-nodegroup.sh
# Usage: INSTANCE=<10-char-id> [EKS_CLUSTER_NAME=pm4-eng] [AWS_REGION=us-east-1] [EFS_SECURITY_GROUP_ID=sg-...] ./delete-perf-nodegroup.sh
# Idempotent: no-op if node group does not exist.
set -euo pipefail

INSTANCE="${INSTANCE:?INSTANCE is required (10-char instance id)}"
EKS_CLUSTER_NAME="${EKS_CLUSTER_NAME:-pm4-eng}"
AWS_REGION="${AWS_REGION:-us-east-1}"
EFS_SECURITY_GROUP_ID="${EFS_SECURITY_GROUP_ID:-sg-019a2068045d7a240}"
NODEGROUP_NAME="perf-ci-${INSTANCE}"

if ! aws eks describe-nodegroup \
Expand All @@ -17,6 +18,23 @@ if ! aws eks describe-nodegroup \
exit 0
fi

# Revoke NFS from perf node group in EFS SG before instances are gone
NODE_SGS=$(aws ec2 describe-instances --region "${AWS_REGION}" \
--filters "Name=tag:eks:nodegroup-name,Values=${NODEGROUP_NAME}" "Name=instance-state-name,Values=running,pending,stopping,stopped" \
--query 'Reservations[].Instances[].SecurityGroups[].GroupId' --output text | tr '\t' '\n' | sort -u)
if [ -n "${NODE_SGS}" ]; then
for sg in ${NODE_SGS}; do
if [ "${sg}" = "${EFS_SECURITY_GROUP_ID}" ]; then
continue
fi
echo "Revoking inbound rule from ${EFS_SECURITY_GROUP_ID}: TCP 2049 from ${sg}"
aws ec2 revoke-security-group-ingress --region "${AWS_REGION}" \
--group-id "${EFS_SECURITY_GROUP_ID}" \
--protocol tcp --port 2049 \
--source-group "${sg}" 2>/dev/null || true
done
fi

echo "Deleting node group: ${NODEGROUP_NAME}"
aws eks delete-nodegroup \
--cluster-name "${EKS_CLUSTER_NAME}" \
Expand Down