From bfbf0ded4336be0e7e7db03bd1e10b15b8b11ae1 Mon Sep 17 00:00:00 2001 From: Francesco Belacca Date: Fri, 26 Jan 2024 15:37:09 +0100 Subject: [PATCH 1/7] Update parameters.json --- Bicep/ACS/parameters.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Bicep/ACS/parameters.json b/Bicep/ACS/parameters.json index dd7a6bc..9e43856 100644 --- a/Bicep/ACS/parameters.json +++ b/Bicep/ACS/parameters.json @@ -4,9 +4,9 @@ "parameters": { "experimentConfiguration": { "value": { - "duration": "30s", + "duration": "PT6M", "namespace": "demo-performance" } } } -} \ No newline at end of file +} From 3c7a8773dcbf90d7c8a5bbcc28211a9d4dd995b6 Mon Sep 17 00:00:00 2001 From: Francesco Belacca Date: Fri, 26 Jan 2024 15:38:06 +0100 Subject: [PATCH 2/7] Update mainACS.bicep --- Bicep/ACS/mainACS.bicep | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bicep/ACS/mainACS.bicep b/Bicep/ACS/mainACS.bicep index 48a794a..d8d1fa6 100644 --- a/Bicep/ACS/mainACS.bicep +++ b/Bicep/ACS/mainACS.bicep @@ -23,7 +23,7 @@ param experimentSteps array = [ { type: 'continuous' selectorId: guid('Selector1') - duration: 'PT6M' + duration: experimentConfiguration.duration parameters: [ { key: 'jsonSpec' From 08a9bcc88b2f0cc6da132d4a1a5e077b1fb1abb2 Mon Sep 17 00:00:00 2001 From: Francesco Belacca Date: Fri, 26 Jan 2024 15:52:46 +0100 Subject: [PATCH 3/7] Update advanced-scenario.yml added grafana, not only prometheus gets installed --- .github/workflows/advanced-scenario.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/advanced-scenario.yml b/.github/workflows/advanced-scenario.yml index 2174bb6..99e716e 100644 --- a/.github/workflows/advanced-scenario.yml +++ b/.github/workflows/advanced-scenario.yml @@ -121,8 +121,8 @@ jobs: helm upgrade $RELEASE_NAME_LOWERCASE . --install echo "CLUSTERIP=$(kubectl get service "nginx-ingress-nginx-controller" -n default -o jsonpath="{.status.loadBalancer.ingress[0].ip}")" >> $GITHUB_ENV - # Deploy Prometheus service to Kubernetes - - name: Deploy Prometheus service to Kubernetes + # Deploy Prometheus and grafana service to Kubernetes + - name: Deploy Prometheus and Grafana services to Kubernetes run: | helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update From 335206b2b99f142c0692ecb9412cb4036c39899d Mon Sep 17 00:00:00 2001 From: "francesco.belacca" Date: Mon, 26 Feb 2024 16:23:48 +0100 Subject: [PATCH 4/7] setting the header that now seems important --- .github/workflows/advanced-scenario.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/advanced-scenario.yml b/.github/workflows/advanced-scenario.yml index 99e716e..7863394 100644 --- a/.github/workflows/advanced-scenario.yml +++ b/.github/workflows/advanced-scenario.yml @@ -145,9 +145,9 @@ jobs: $TARGET_TYPE = "Microsoft-AzureKubernetesServiceChaosMesh" # echo resolved command - echo az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos?api-version=2023-11-01" --body '{\"properties\":{\"enabled\":true}}' + echo az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos?api-version=2023-11-01" --body '{\"properties\":{\"enabled\":true}}' --headers "Content-Type=application/json" - az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh?api-version=2023-11-01" --body '{\"properties\":{}}' + az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh?api-version=2023-11-01" --body '{\"properties\":{}}' --headers "Content-Type=application/json" # Create The Capabilities On The Target - name: Create The Capabilities On The Target @@ -157,7 +157,7 @@ jobs: $RESOURCE_GROUP = "${{ secrets.AZURE_RG }}" $SUBSCRIPTION_ID = "${{ secrets.AZURE_SUBSCRIPTION }}" - az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh/capabilities/StressChaos-2.1?api-version=2023-11-01" --body '{\"properties\":{}}' + az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh/capabilities/StressChaos-2.1?api-version=2023-11-01" --body '{\"properties\":{}}' --headers "Content-Type=application/json" # Deploy Bicep file Azure Load Testing --- TODO Param northeurope - name: Deploy Bicep file Azure Load Testing From 1811b3ccb27b8f9635a095d2cc4073c1486c8b6e Mon Sep 17 00:00:00 2001 From: "francesco.belacca" Date: Mon, 26 Feb 2024 16:38:27 +0100 Subject: [PATCH 5/7] trying to fix body that is not valid json anymore for AZURE --- .github/workflows/advanced-scenario.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/advanced-scenario.yml b/.github/workflows/advanced-scenario.yml index 7863394..21150d2 100644 --- a/.github/workflows/advanced-scenario.yml +++ b/.github/workflows/advanced-scenario.yml @@ -145,9 +145,9 @@ jobs: $TARGET_TYPE = "Microsoft-AzureKubernetesServiceChaosMesh" # echo resolved command - echo az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos?api-version=2023-11-01" --body '{\"properties\":{\"enabled\":true}}' --headers "Content-Type=application/json" + echo az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos?api-version=2023-11-01" --body "{\"properties\":{}}" --headers "Content-Type=application/json" - az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh?api-version=2023-11-01" --body '{\"properties\":{}}' --headers "Content-Type=application/json" + az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh?api-version=2023-11-01" --body "{\"properties\":{}}" --headers "Content-Type=application/json" # Create The Capabilities On The Target - name: Create The Capabilities On The Target @@ -157,7 +157,7 @@ jobs: $RESOURCE_GROUP = "${{ secrets.AZURE_RG }}" $SUBSCRIPTION_ID = "${{ secrets.AZURE_SUBSCRIPTION }}" - az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh/capabilities/StressChaos-2.1?api-version=2023-11-01" --body '{\"properties\":{}}' --headers "Content-Type=application/json" + az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh/capabilities/StressChaos-2.1?api-version=2023-11-01" --body "{\"properties\":{}}" --headers "Content-Type=application/json" # Deploy Bicep file Azure Load Testing --- TODO Param northeurope - name: Deploy Bicep file Azure Load Testing From 13eb40bc424b59d77e49efdca356e09cca58e432 Mon Sep 17 00:00:00 2001 From: "francesco.belacca" Date: Mon, 26 Feb 2024 16:58:30 +0100 Subject: [PATCH 6/7] try again with convert to json --- .github/workflows/advanced-scenario.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/advanced-scenario.yml b/.github/workflows/advanced-scenario.yml index 21150d2..d0dd00c 100644 --- a/.github/workflows/advanced-scenario.yml +++ b/.github/workflows/advanced-scenario.yml @@ -143,11 +143,11 @@ jobs: $RESOURCE_GROUP = "${{ secrets.AZURE_RG }}" $SUBSCRIPTION_ID = "${{ secrets.AZURE_SUBSCRIPTION }}" $TARGET_TYPE = "Microsoft-AzureKubernetesServiceChaosMesh" - - # echo resolved command - echo az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos?api-version=2023-11-01" --body "{\"properties\":{}}" --headers "Content-Type=application/json" - - az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh?api-version=2023-11-01" --body "{\"properties\":{}}" --headers "Content-Type=application/json" + $jsonBody = @{ + properties = @{} + } | ConvertTo-Json -Compress + + az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh?api-version=2023-11-01" --body $jsonBody --headers "Content-Type=application/json" # Create The Capabilities On The Target - name: Create The Capabilities On The Target @@ -156,8 +156,11 @@ jobs: $AKS_NAME = "${{ env.KUBERNETESSERVICENAME }}" $RESOURCE_GROUP = "${{ secrets.AZURE_RG }}" $SUBSCRIPTION_ID = "${{ secrets.AZURE_SUBSCRIPTION }}" + $jsonBody = @{ + properties = @{} + } | ConvertTo-Json -Compress - az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh/capabilities/StressChaos-2.1?api-version=2023-11-01" --body "{\"properties\":{}}" --headers "Content-Type=application/json" + az rest --method put --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$AKS_NAME/providers/Microsoft.Chaos/targets/Microsoft-AzureKubernetesServiceChaosMesh/capabilities/StressChaos-2.1?api-version=2023-11-01" --body $jsonBody --headers "Content-Type=application/json" # Deploy Bicep file Azure Load Testing --- TODO Param northeurope - name: Deploy Bicep file Azure Load Testing From c17a70d341a06a18f6e2b4e3b03f1dadf43563be Mon Sep 17 00:00:00 2001 From: Francesco Belacca Date: Wed, 28 Feb 2024 16:30:30 +0100 Subject: [PATCH 7/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 50f8a64..afe0afc 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ This project contains a pipeline that deploys all the previous components to an - the Nginx Ingress Controller - the web app to be tested - Prometheus and Grafana to monitor the web app metrics -- the Chaos Mesh to simulate random faults +- the Chaos Mesh to simulate faults Finally creates and runs the JMeter load test and the Chaos Experiment during the load test, to cause really high CPU usage in your app pods.