|
10 | 10 | deploy: |
11 | 11 | name: K8s QuickStart CI test |
12 | 12 | runs-on: ubuntu-latest |
13 | | - timeout-minutes: 30 |
| 13 | + timeout-minutes: 40 |
14 | 14 |
|
15 | 15 | steps: |
16 | 16 | - name: Set env and tools |
@@ -173,6 +173,84 @@ jobs: |
173 | 173 | kubectl delete secret test-tls |
174 | 174 | kubectl delete pvc --all |
175 | 175 |
|
| 176 | + - name: Test Comprehensive Vertical Scaling |
| 177 | + run: | |
| 178 | + REPO=solace/solace-pubsub-standard |
| 179 | + TAG=latest |
| 180 | +
|
| 181 | + # Deploy broker with specific scaling parameters |
| 182 | +
|
| 183 | + echo "Installing broker with comprehensive vertical scaling parameters" |
| 184 | + helm install scaling-test pubsubplus \ |
| 185 | + --set solace.systemScaling.maxConnections=1000 \ |
| 186 | + --set solace.systemScaling.maxQueueMessages=100 \ |
| 187 | + --set solace.systemScaling.maxSpoolUsage=1500 \ |
| 188 | + --set solace.systemScaling.cpu=2 \ |
| 189 | + --set solace.systemScaling.memory=6410Mi \ |
| 190 | + --set solace.systemScaling.maxKafkaBridgeCount=10 \ |
| 191 | + --set solace.systemScaling.maxKafkaBrokerConnectionCount=300 \ |
| 192 | + --set solace.systemScaling.maxBridgeCount=25 \ |
| 193 | + --set solace.systemScaling.maxSubscriptionCount=50000 \ |
| 194 | + --set solace.systemScaling.maxGuaranteedMessageSize=30 \ |
| 195 | + --set solace.usernameAdminPassword=admin |
| 196 | +
|
| 197 | + kubectl get statefulset,svc,pods,pvc,pv --show-labels |
| 198 | +
|
| 199 | + # Wait for broker to become active |
| 200 | + echo "Waiting for broker to become active" |
| 201 | + sleep 60 |
| 202 | + until kubectl get pods --show-labels | grep scaling-test-pubsubplus-0 | grep -m 1 -E '1/1'; do sleep 10; done |
| 203 | + until kubectl get pods --show-labels | grep scaling-test-pubsubplus- | grep -m 1 -E 'active=true'; do sleep 10; done |
| 204 | +
|
| 205 | + # Verify environment variables are set correctly in the pod |
| 206 | + echo "Verifying environment variables..." |
| 207 | + kubectl exec scaling-test-pubsubplus-0 -- env | grep SYSTEM_SCALING_MAXKAFKABRIDGECOUNT | grep "10" |
| 208 | + kubectl exec scaling-test-pubsubplus-0 -- env | grep SYSTEM_SCALING_MAXKAFKABROKERCONNECTIONCOUNT | grep "300" |
| 209 | + kubectl exec scaling-test-pubsubplus-0 -- env | grep SYSTEM_SCALING_MAXBRIDGECOUNT | grep "25" |
| 210 | + kubectl exec scaling-test-pubsubplus-0 -- env | grep SYSTEM_SCALING_MAXSUBSCRIPTIONCOUNT | grep "50000" |
| 211 | + kubectl exec scaling-test-pubsubplus-0 -- env | grep SYSTEM_SCALING_MAXGUARANTEEDMESSAGESIZE | grep "30" |
| 212 | +
|
| 213 | +
|
| 214 | + # Verify the broker configuration through SEMP API |
| 215 | + echo "Verifying broker configuration through SEMP API..." |
| 216 | + export url="$(kubectl get svc scaling-test-pubsubplus -o jsonpath='{.status.loadBalancer.ingress[0].ip}')" |
| 217 | + echo "Broker URL: $url" |
| 218 | +
|
| 219 | + # Wait for SEMP API to be available |
| 220 | + sleep 30 |
| 221 | +
|
| 222 | + # Test basic connectivity |
| 223 | + curl -s -u admin:admin http://$url:8080/SEMP -d "<rpc><show><version></version></show></rpc>" |
| 224 | +
|
| 225 | + # Test Sytem configuration |
| 226 | + curl -s -u admin:admin http://$url:8080/SEMP -d "<rpc><show><system></system></show></rpc>" |
| 227 | +
|
| 228 | + # Check Kafka Bridge Count through SEMP |
| 229 | + echo "Checking max Kafka Bridge Count through SEMP..." |
| 230 | + result=$(curl -s -u admin:admin "http://$url:8080/SEMP" -d "<rpc><show><system></system></show></rpc>" | grep "<max-kafka-bridges>10</max-kafka-bridges>") |
| 231 | + if [ -z "$result" ]; then |
| 232 | + echo "Expected value not found!" |
| 233 | + exit 1 |
| 234 | + else |
| 235 | + echo |
| 236 | + echo "PASSED: Found: $result" |
| 237 | + fi |
| 238 | +
|
| 239 | + # Check max bridge Count through SEMP |
| 240 | + echo "Checking max Bridge Count through SEMP..." |
| 241 | + result=$(curl -s -u admin:admin "http://$url:8080/SEMP" -d "<rpc><show><system></system></show></rpc>" | grep "<max-bridges>25</max-bridges>") |
| 242 | + if [ -z "$result" ]; then |
| 243 | + echo "Expected value not found!" |
| 244 | + exit 1 |
| 245 | + else |
| 246 | + echo |
| 247 | + echo "PASSED: Found: $result" |
| 248 | + fi |
| 249 | +
|
| 250 | + # Clean up |
| 251 | + helm delete scaling-test |
| 252 | + kubectl delete pvc --all |
| 253 | +
|
176 | 254 | - name: Create chart variants |
177 | 255 | run: | |
178 | 256 | bash docs/helm-charts/create-chart-variants.sh; # Create chart variants |
|
0 commit comments