From 66355dbaf30c7de18be0b022c17036228413ee18 Mon Sep 17 00:00:00 2001 From: Drumil Patel Date: Fri, 7 Aug 2020 01:37:32 +0530 Subject: [PATCH 1/5] Add gke specific changes Signed-off-by: Drumil Patel --- .github/workflows/grafana_dashboard.yaml | 4 ++-- funcbench/Makefile | 8 ++++---- funcbench/manifests/cluster.yaml | 2 +- infra/README.md | 20 +++++++++---------- infra/infra.go | 16 +++++++-------- pkg/provider/gke/gke.go | 4 ++-- prombench/Makefile | 12 +++++------ prombench/README.md | 10 +++++----- .../{cluster.yaml => cluster_gke.yaml} | 2 +- prombench/manifests/prombench/nodepools.yaml | 2 +- 10 files changed, 40 insertions(+), 40 deletions(-) rename prombench/manifests/{cluster.yaml => cluster_gke.yaml} (91%) diff --git a/.github/workflows/grafana_dashboard.yaml b/.github/workflows/grafana_dashboard.yaml index 17bc4753c..4a73bf6ab 100644 --- a/.github/workflows/grafana_dashboard.yaml +++ b/.github/workflows/grafana_dashboard.yaml @@ -15,14 +15,14 @@ jobs: uses: docker://prominfra/prombench:master env: AUTH_FILE: ${{ secrets.TEST_INFRA_GKE_AUTH }} - PROJECT_ID: macro-mile-203600 + GKE_PROJECT_ID: macro-mile-203600 CLUSTER_NAME: test-infra ZONE: europe-west3-a TEST_INFRA_REPO: https://github.com/prometheus/test-infra.git with: args: >- ./prombench gke resource apply -a $AUTH_FILE - -v PROJECT_ID:$PROJECT_ID -v ZONE:$ZONE + -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v ZONE:$ZONE -v CLUSTER_NAME:$CLUSTER_NAME -f manifests/cluster-infra/grafana_dashboard_dashboards_noparse.yaml - name: Comment Failure Message diff --git a/funcbench/Makefile b/funcbench/Makefile index a1457c446..7c6c00450 100644 --- a/funcbench/Makefile +++ b/funcbench/Makefile @@ -12,17 +12,17 @@ clean: resource_delete cluster_delete cluster_create: $(INFRA_CMD) gke cluster create -a ${AUTH_FILE} \ - -v PROJECT_ID:${PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ + -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/cluster.yaml cluster_delete: $(INFRA_CMD) gke cluster delete -a ${AUTH_FILE} \ - -v PROJECT_ID:${PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ + -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/cluster.yaml resource_apply: $(INFRA_CMD) gke resource apply -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} -v CLUSTER_NAME:funcbench-${PR_NUMBER} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:funcbench-${PR_NUMBER} \ -v PR_NUMBER:${PR_NUMBER} -v GITHUB_TOKEN:${GITHUB_TOKEN} \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ -v BRANCH:${BRANCH} -v 'BENCH_FUNC_REGEX:${BENCH_FUNC_REGEX}' \ @@ -32,7 +32,7 @@ resource_apply: # Removal of namespace should be at the end, after all other resources get removed. resource_delete: $(INFRA_CMD) gke resource delete -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} -v CLUSTER_NAME:funcbench-${PR_NUMBER} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:funcbench-${PR_NUMBER} \ -v PR_NUMBER:${PR_NUMBER} -v GITHUB_TOKEN:${GITHUB_TOKEN} \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ -v BRANCH:${BRANCH} -v 'BENCH_FUNC_REGEX:${BENCH_FUNC_REGEX}' \ diff --git a/funcbench/manifests/cluster.yaml b/funcbench/manifests/cluster.yaml index c21d7e89f..a50f14517 100644 --- a/funcbench/manifests/cluster.yaml +++ b/funcbench/manifests/cluster.yaml @@ -1,4 +1,4 @@ -projectid: {{ .PROJECT_ID }} +projectid: {{ .GKE_PROJECT_ID }} zone: {{ .ZONE }} cluster: name: {{ .CLUSTER_NAME }} diff --git a/infra/README.md b/infra/README.md index d55b29964..87d6716b2 100644 --- a/infra/README.md +++ b/infra/README.md @@ -38,26 +38,26 @@ Commands: gke cluster delete gke cluster delete -a service-account.json -f FileOrFolder - gke nodepool create - gke nodepool create -a service-account.json -f FileOrFolder + gke nodes create + gke nodes create -a service-account.json -f FileOrFolder - gke nodepool delete - gke nodepool delete -a service-account.json -f FileOrFolder + gke nodes delete + gke nodes delete -a service-account.json -f FileOrFolder - gke nodepool check-running - gke nodepool check-running -a service-account.json -f FileOrFolder + gke nodes check-running + gke nodes check-running -a service-account.json -f FileOrFolder - gke nodepool check-deleted - gke nodepool check-deleted -a service-account.json -f FileOrFolder + gke nodes check-deleted + gke nodes check-deleted -a service-account.json -f FileOrFolder gke resource apply gke resource apply -a service-account.json -f manifestsFileOrFolder -v - PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v + GKE_PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v hashStable:COMMIT1 -v hashTesting:COMMIT2 gke resource delete gke resource delete -a service-account.json -f manifestsFileOrFolder -v - PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v + GKE_PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v hashStable:COMMIT1 -v hashTesting:COMMIT2 diff --git a/infra/infra.go b/infra/infra.go index 02edff78f..a30c40c48 100644 --- a/infra/infra.go +++ b/infra/infra.go @@ -60,26 +60,26 @@ func main() { Action(g.ClusterDelete) // Cluster node-pool operations - k8sGKENodePool := k8sGKE.Command("nodepool", "manage GKE clusters nodepools"). + k8sGKENodePool := k8sGKE.Command("nodes", "manage GKE clusters nodepools"). Action(g.NewGKEClient). Action(g.GKEDeploymentsParse) - k8sGKENodePool.Command("create", "gke nodepool create -a service-account.json -f FileOrFolder"). + k8sGKENodePool.Command("create", "gke nodes create -a service-account.json -f FileOrFolder"). Action(g.NodePoolCreate) - k8sGKENodePool.Command("delete", "gke nodepool delete -a service-account.json -f FileOrFolder"). + k8sGKENodePool.Command("delete", "gke nodes delete -a service-account.json -f FileOrFolder"). Action(g.NodePoolDelete) - k8sGKENodePool.Command("check-running", "gke nodepool check-running -a service-account.json -f FileOrFolder"). + k8sGKENodePool.Command("check-running", "gke nodes check-running -a service-account.json -f FileOrFolder"). Action(g.AllNodepoolsRunning) - k8sGKENodePool.Command("check-deleted", "gke nodepool check-deleted -a service-account.json -f FileOrFolder"). + k8sGKENodePool.Command("check-deleted", "gke nodes check-deleted -a service-account.json -f FileOrFolder"). Action(g.AllNodepoolsDeleted) // K8s resource operations. - k8sGKEResource := k8sGKE.Command("resource", `Apply and delete different k8s resources - deployments, services, config maps etc.Required variables -v PROJECT_ID, -v ZONE: -west1-b -v CLUSTER_NAME`). + k8sGKEResource := k8sGKE.Command("resource", `Apply and delete different k8s resources - deployments, services, config maps etc.Required variables -v GKE_PROJECT_ID, -v ZONE: -west1-b -v CLUSTER_NAME`). Action(g.NewGKEClient). Action(g.K8SDeploymentsParse). Action(g.NewK8sProvider) - k8sGKEResource.Command("apply", "gke resource apply -a service-account.json -f manifestsFileOrFolder -v PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v hashStable:COMMIT1 -v hashTesting:COMMIT2"). + k8sGKEResource.Command("apply", "gke resource apply -a service-account.json -f manifestsFileOrFolder -v GKE_PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v hashStable:COMMIT1 -v hashTesting:COMMIT2"). Action(g.ResourceApply) - k8sGKEResource.Command("delete", "gke resource delete -a service-account.json -f manifestsFileOrFolder -v PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v hashStable:COMMIT1 -v hashTesting:COMMIT2"). + k8sGKEResource.Command("delete", "gke resource delete -a service-account.json -f manifestsFileOrFolder -v GKE_PROJECT_ID:test -v ZONE:europe-west1-b -v CLUSTER_NAME:test -v hashStable:COMMIT1 -v hashTesting:COMMIT2"). Action(g.ResourceDelete) if _, err := app.Parse(os.Args[1:]); err != nil { diff --git a/pkg/provider/gke/gke.go b/pkg/provider/gke/gke.go index 7ab301a77..444b33ae0 100644 --- a/pkg/provider/gke/gke.go +++ b/pkg/provider/gke/gke.go @@ -196,7 +196,7 @@ func (c *GKE) K8SDeploymentsParse(*kingpin.ParseContext) error { // checkDeploymentVarsAndFiles checks whether the requied deployment vars are passed. func (c *GKE) checkDeploymentVarsAndFiles() error { - reqDepVars := []string{"PROJECT_ID", "ZONE", "CLUSTER_NAME"} + reqDepVars := []string{"GKE_PROJECT_ID", "ZONE", "CLUSTER_NAME"} for _, k := range reqDepVars { if v, ok := c.DeploymentVars[k]; !ok || v == "" { return fmt.Errorf("missing required %v variable", k) @@ -518,7 +518,7 @@ func (c *GKE) AllNodepoolsDeleted(*kingpin.ParseContext) error { func (c *GKE) NewK8sProvider(*kingpin.ParseContext) error { // Get the authentication certificate for the cluster using the GKE client. req := &containerpb.GetClusterRequest{ - ProjectId: c.DeploymentVars["PROJECT_ID"], + ProjectId: c.DeploymentVars["GKE_PROJECT_ID"], Zone: c.DeploymentVars["ZONE"], ClusterId: c.DeploymentVars["CLUSTER_NAME"], } diff --git a/prombench/Makefile b/prombench/Makefile index 5bcc1d46f..d18b18cb2 100644 --- a/prombench/Makefile +++ b/prombench/Makefile @@ -8,12 +8,12 @@ clean: resource_delete nodepool_delete nodepool_create: $(INFRA_CMD) gke nodepool create -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/prombench/nodepools.yaml resource_apply: $(INFRA_CMD) gke resource apply -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} \ -v PR_NUMBER:${PR_NUMBER} -v RELEASE:${RELEASE} -v DOMAIN_NAME:${DOMAIN_NAME} \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ -f manifests/prombench/benchmark @@ -21,23 +21,23 @@ resource_apply: # Required because namespace and cluster-role are not part of the created nodepools resource_delete: $(INFRA_CMD) gke resource delete -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/prombench/benchmark/1c_cluster-role-binding.yaml \ -f manifests/prombench/benchmark/1a_namespace.yaml nodepool_delete: $(INFRA_CMD) gke nodepool delete -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/prombench/nodepools.yaml all_nodepools_running: $(INFRA_CMD) gke nodepool check-running -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} \ -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/prombench/nodepools.yaml all_nodepools_deleted: $(INFRA_CMD) gke nodepool check-deleted -a ${AUTH_FILE} \ - -v ZONE:${ZONE} -v PROJECT_ID:${PROJECT_ID} \ + -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} \ -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/prombench/nodepools.yaml diff --git a/prombench/README.md b/prombench/README.md index 5d99b848b..ce5c6cf8c 100644 --- a/prombench/README.md +++ b/prombench/README.md @@ -29,12 +29,12 @@ The `/manifest` directory contains all the kubernetes manifest files. - Set the following environment variables and deploy the cluster. ``` -export PROJECT_ID= +export GKE_PROJECT_ID= export CLUSTER_NAME=prombench export ZONE=us-east1-b export AUTH_FILE= -../infra/infra gke cluster create -a $AUTH_FILE -v PROJECT_ID:$PROJECT_ID \ +../infra/infra gke cluster create -a $AUTH_FILE -v GKE_PROJECT_ID:$GKE_PROJECT_ID \ -v ZONE:$ZONE -v CLUSTER_NAME:$CLUSTER_NAME -f manifests/cluster.yaml ``` @@ -61,7 +61,7 @@ export GITHUB_REPO=prometheus - Deploy the [nginx-ingress-controller](https://github.com/kubernetes/ingress-nginx), Prometheus-Meta, Loki, Grafana, Alertmanager & Github Notifier. ``` -../infra/infra gke resource apply -a $AUTH_FILE -v PROJECT_ID:$PROJECT_ID -v ZONE:$ZONE \ +../infra/infra gke resource apply -a $AUTH_FILE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v ZONE:$ZONE \ -v CLUSTER_NAME:$CLUSTER_NAME -v DOMAIN_NAME:$DOMAIN_NAME \ -v GRAFANA_ADMIN_PASSWORD:$GRAFANA_ADMIN_PASSWORD \ -v SERVICEACCOUNT_CLIENT_EMAIL:$SERVICEACCOUNT_CLIENT_EMAIL \ @@ -128,7 +128,7 @@ export PR_NUMBER= ``` ../infra/infra gke nodepool create -a $AUTH_FILE \ - -v ZONE:$ZONE -v PROJECT_ID:$PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ + -v ZONE:$ZONE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ -v PR_NUMBER:$PR_NUMBER -f manifests/prombench/nodepools.yaml ``` @@ -136,7 +136,7 @@ export PR_NUMBER= ``` ../infra/infra gke resource apply -a $AUTH_FILE \ - -v ZONE:$ZONE -v PROJECT_ID:$PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ + -v ZONE:$ZONE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ -v PR_NUMBER:$PR_NUMBER -v RELEASE:$RELEASE -v DOMAIN_NAME:$DOMAIN_NAME \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ -f manifests/prombench/benchmark diff --git a/prombench/manifests/cluster.yaml b/prombench/manifests/cluster_gke.yaml similarity index 91% rename from prombench/manifests/cluster.yaml rename to prombench/manifests/cluster_gke.yaml index 48a840ad2..3866882af 100644 --- a/prombench/manifests/cluster.yaml +++ b/prombench/manifests/cluster_gke.yaml @@ -1,4 +1,4 @@ -projectid: {{ .PROJECT_ID }} +projectid: {{ .GKE_PROJECT_ID }} zone: {{ .ZONE }} cluster: name: {{ .CLUSTER_NAME }} diff --git a/prombench/manifests/prombench/nodepools.yaml b/prombench/manifests/prombench/nodepools.yaml index ec84f9b19..7306c5726 100644 --- a/prombench/manifests/prombench/nodepools.yaml +++ b/prombench/manifests/prombench/nodepools.yaml @@ -1,5 +1,5 @@ zone: {{ .ZONE }} -projectid: {{ .PROJECT_ID }} +projectid: {{ .GKE_PROJECT_ID }} cluster: name: {{ .CLUSTER_NAME }} nodepools: From ec2be28d5f09fe1108b21dc72435e1947340dff5 Mon Sep 17 00:00:00 2001 From: Drumil Patel Date: Sat, 15 Aug 2020 03:37:11 +0530 Subject: [PATCH 2/5] Add documentation for gke and update file names in both prombench and funcbench Signed-off-by: Drumil Patel --- funcbench/Makefile | 4 +- .../{cluster.yaml => cluster_gke.yaml} | 0 prombench/Makefile | 16 +-- prombench/README.md | 104 +----------------- prombench/docs/gke.md | 99 +++++++++++++++++ .../{nodepools.yaml => nodes_gke.yaml} | 0 6 files changed, 115 insertions(+), 108 deletions(-) rename funcbench/manifests/{cluster.yaml => cluster_gke.yaml} (100%) create mode 100644 prombench/docs/gke.md rename prombench/manifests/prombench/{nodepools.yaml => nodes_gke.yaml} (100%) diff --git a/funcbench/Makefile b/funcbench/Makefile index 7c6c00450..0ddac1462 100644 --- a/funcbench/Makefile +++ b/funcbench/Makefile @@ -13,12 +13,12 @@ clean: resource_delete cluster_delete cluster_create: $(INFRA_CMD) gke cluster create -a ${AUTH_FILE} \ -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/cluster.yaml + -f manifests/cluster_gke.yaml cluster_delete: $(INFRA_CMD) gke cluster delete -a ${AUTH_FILE} \ -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/cluster.yaml + -f manifests/cluster_gke.yaml resource_apply: $(INFRA_CMD) gke resource apply -a ${AUTH_FILE} \ diff --git a/funcbench/manifests/cluster.yaml b/funcbench/manifests/cluster_gke.yaml similarity index 100% rename from funcbench/manifests/cluster.yaml rename to funcbench/manifests/cluster_gke.yaml diff --git a/prombench/Makefile b/prombench/Makefile index d18b18cb2..9bc3e4a53 100644 --- a/prombench/Makefile +++ b/prombench/Makefile @@ -7,9 +7,9 @@ deploy: nodepool_create resource_apply clean: resource_delete nodepool_delete nodepool_create: - $(INFRA_CMD) gke nodepool create -a ${AUTH_FILE} \ + $(INFRA_CMD) gke nodes create -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodepools.yaml + -f manifests/prombench/nodes_gke.yaml resource_apply: $(INFRA_CMD) gke resource apply -a ${AUTH_FILE} \ @@ -26,18 +26,18 @@ resource_delete: -f manifests/prombench/benchmark/1a_namespace.yaml nodepool_delete: - $(INFRA_CMD) gke nodepool delete -a ${AUTH_FILE} \ + $(INFRA_CMD) gke nodes delete -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodepools.yaml + -f manifests/prombench/nodes_gke.yaml all_nodepools_running: - $(INFRA_CMD) gke nodepool check-running -a ${AUTH_FILE} \ + $(INFRA_CMD) gke nodes check-running -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} \ -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodepools.yaml + -f manifests/prombench/nodes_gke.yaml all_nodepools_deleted: - $(INFRA_CMD) gke nodepool check-deleted -a ${AUTH_FILE} \ + $(INFRA_CMD) gke nodes check-deleted -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} \ -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodepools.yaml + -f manifests/prombench/nodes_gke.yaml diff --git a/prombench/README.md b/prombench/README.md index ce5c6cf8c..3970abf76 100644 --- a/prombench/README.md +++ b/prombench/README.md @@ -9,78 +9,17 @@ It is designed to support adding more k8s providers. The `/manifest` directory contains all the kubernetes manifest files. -- `cluster.yaml` : This is used to create the Main Node. +- `cluster_gke.yaml` : This is used to create the Main Node in gke. - `cluster-infra/` : These are the persistent components of the Main Node. - `prombench/` : These resources are created and destroyed for each prombench test. -## Setup prombench +## Providers -1. [Create the main node](#create-the-main-node) -2. [Deploy monitoring components](#deploy-monitoring-components) -3. [Setup GitHub Actions](#setup-github-actions) +Presently prombench supports following providers: + +- [Google Kubernetes Engine](docs/gke.md) -### Create the Main Node - ---- - -- Create a new project on Google Cloud. -- Create a [Service Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts) on GKE with role `Kubernetes Engine Service Agent` & `Kubernetes Engine Admin`. If using gcloud cli add the [`roles/container.admin`](https://cloud.google.com/kubernetes-engine/docs/how-to/iam#kubernetes-engine-roles) and [`roles/iam.serviceAccountUser`](https://cloud.google.com/kubernetes-engine/docs/how-to/iam#service_account_user) roles to the GCP serviceAccount and download the json file. - -- Set the following environment variables and deploy the cluster. - -``` -export GKE_PROJECT_ID= -export CLUSTER_NAME=prombench -export ZONE=us-east1-b -export AUTH_FILE= - -../infra/infra gke cluster create -a $AUTH_FILE -v GKE_PROJECT_ID:$GKE_PROJECT_ID \ - -v ZONE:$ZONE -v CLUSTER_NAME:$CLUSTER_NAME -f manifests/cluster.yaml -``` - -### Deploy monitoring components - -> Collecting, monitoring and displaying the test results and logs - ---- - -- [Optional] If used with the Github integration generate a GitHub auth token. - - Login with the [Prombot account](https://github.com/prombot) and generate a [new auth token](https://github.com/settings/tokens). - - With permissions: `public_repo`, `read:org`, `write:discussion`. - -``` -export SERVICEACCOUNT_CLIENT_EMAIL= -export GRAFANA_ADMIN_PASSWORD=password -export DOMAIN_NAME=prombench.prometheus.io // Can be set to any other custom domain or an empty string when not used with the Github integration. -export OAUTH_TOKEN= -export WH_SECRET= -export GITHUB_ORG=prometheus -export GITHUB_REPO=prometheus -``` - -- Deploy the [nginx-ingress-controller](https://github.com/kubernetes/ingress-nginx), Prometheus-Meta, Loki, Grafana, Alertmanager & Github Notifier. - -``` -../infra/infra gke resource apply -a $AUTH_FILE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v ZONE:$ZONE \ - -v CLUSTER_NAME:$CLUSTER_NAME -v DOMAIN_NAME:$DOMAIN_NAME \ - -v GRAFANA_ADMIN_PASSWORD:$GRAFANA_ADMIN_PASSWORD \ - -v SERVICEACCOUNT_CLIENT_EMAIL:$SERVICEACCOUNT_CLIENT_EMAIL \ - -v OAUTH_TOKEN="$(printf $OAUTH_TOKEN | base64 -w 0)" \ - -v WH_SECRET="$(printf $WH_SECRET | base64 -w 0)" \ - -v GITHUB_ORG:$GITHUB_ORG -v GITHUB_REPO:$GITHUB_REPO \ - -f manifests/cluster-infra -``` - -> Note: Use `-v GKE_AUTH="$(echo $AUTH_FILE | base64 -w 0)"` if you're passing the data directly into `$AUTH_FILE` - -- The output will show the ingress IP which will be used to point the domain name to. Alternatively you can see it from the GKE/Services tab. -- Set the `A record` for `` to point to `nginx-ingress-controller` IP address. -- The services will be accessible at: - - Grafana :: `http:///grafana` - - Prometheus :: `http:///prometheus-meta` - - Logs :: `http:///grafana/explore` - -### Setup GitHub Actions +## Setup GitHub Actions Place a workflow file in the `.github` directory of the repository. See the [prometheus/prometheus](https://github.com/prometheus/prometheus) repository for an example. @@ -91,8 +30,6 @@ Create a github action `TEST_INFRA_GKE_AUTH` secret with the base64 encoded cont cat $AUTH_FILE | base64 -w 0 ``` -## Usage - ### Trigger tests via a Github comment. @@ -113,35 +50,6 @@ cat $AUTH_FILE | base64 -w 0 - `/prombench cancel` -### Start a benchmarking test manually - ---- - -- Set the following environment variables. - -``` -export RELEASE= -export PR_NUMBER= -``` - -- Create the nodepools for the k8s objects - -``` -../infra/infra gke nodepool create -a $AUTH_FILE \ - -v ZONE:$ZONE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ - -v PR_NUMBER:$PR_NUMBER -f manifests/prombench/nodepools.yaml -``` - -- Deploy the k8s objects - -``` -../infra/infra gke resource apply -a $AUTH_FILE \ - -v ZONE:$ZONE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ - -v PR_NUMBER:$PR_NUMBER -v RELEASE:$RELEASE -v DOMAIN_NAME:$DOMAIN_NAME \ - -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ - -f manifests/prombench/benchmark -``` - ### Building Docker Image ``` diff --git a/prombench/docs/gke.md b/prombench/docs/gke.md new file mode 100644 index 000000000..f191a8596 --- /dev/null +++ b/prombench/docs/gke.md @@ -0,0 +1,99 @@ +# Prombench in GKE + +Run prombench tests in [Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine). + +## Setup prombench + +1. [Create the main node](#create-the-main-node) +2. [Deploy monitoring components](#deploy-monitoring-components) +3. [Start a benchmarking test manually](#start-a-benchmarking-test-manually) + +### Create the Main Node + +--- + +- Create a new project on Google Cloud. +- Create a [Service Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts) on GKE with role `Kubernetes Engine Service Agent` & `Kubernetes Engine Admin`. If using gcloud cli add the [`roles/container.admin`](https://cloud.google.com/kubernetes-engine/docs/how-to/iam#kubernetes-engine-roles) and [`roles/iam.serviceAccountUser`](https://cloud.google.com/kubernetes-engine/docs/how-to/iam#service_account_user) roles to the GCP serviceAccount and download the json file. + +- Set the following environment variables and deploy the cluster. + +``` +export PROJECT_ID= +export CLUSTER_NAME=prombench +export ZONE=us-east1-b +export AUTH_FILE= + +../infra/infra gke cluster create -a $AUTH_FILE -v PROJECT_ID:$PROJECT_ID \ + -v ZONE:$ZONE -v CLUSTER_NAME:$CLUSTER_NAME -f manifests/cluster_gke.yaml +``` + +### Deploy monitoring components + +> Collecting, monitoring and displaying the test results and logs + +--- + +- [Optional] If used with the Github integration generate a GitHub auth token. + - Login with the [Prombot account](https://github.com/prombot) and generate a [new auth token](https://github.com/settings/tokens). + - With permissions: `public_repo`, `read:org`, `write:discussion`. + +``` +export SERVICEACCOUNT_CLIENT_EMAIL= +export GRAFANA_ADMIN_PASSWORD=password +export DOMAIN_NAME=prombench.prometheus.io // Can be set to any other custom domain or an empty string when not used with the Github integration. +export OAUTH_TOKEN= +export WH_SECRET= +export GITHUB_ORG=prometheus +export GITHUB_REPO=prometheus +``` + +- Deploy the [nginx-ingress-controller](https://github.com/kubernetes/ingress-nginx), Prometheus-Meta, Loki, Grafana, Alertmanager & Github Notifier. + +``` +../infra/infra gke resource apply -a $AUTH_FILE -v PROJECT_ID:$PROJECT_ID -v ZONE:$ZONE \ + -v CLUSTER_NAME:$CLUSTER_NAME -v DOMAIN_NAME:$DOMAIN_NAME \ + -v GRAFANA_ADMIN_PASSWORD:$GRAFANA_ADMIN_PASSWORD \ + -v SERVICEACCOUNT_CLIENT_EMAIL:$SERVICEACCOUNT_CLIENT_EMAIL \ + -v OAUTH_TOKEN="$(printf $OAUTH_TOKEN | base64 -w 0)" \ + -v WH_SECRET="$(printf $WH_SECRET | base64 -w 0)" \ + -v GITHUB_ORG:$GITHUB_ORG -v GITHUB_REPO:$GITHUB_REPO \ + -f manifests/cluster-infra +``` + +> Note: Use `-v GKE_AUTH="$(echo $AUTH_FILE | base64 -w 0)"` if you're passing the data directly into `$AUTH_FILE` + +- The output will show the ingress IP which will be used to point the domain name to. Alternatively you can see it from the GKE/Services tab. +- Set the `A record` for `` to point to `nginx-ingress-controller` IP address. +- The services will be accessible at: + - Grafana :: `http:///grafana` + - Prometheus :: `http:///prometheus-meta` + - Logs :: `http:///grafana/explore` + +### Start a benchmarking test manually + +--- + +- Set the following environment variables. + +``` +export RELEASE= +export PR_NUMBER= +``` + +- Create the nodepools for the k8s objects + +``` +../infra/infra gke nodes create -a $AUTH_FILE \ + -v ZONE:$ZONE -v PROJECT_ID:$PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ + -v PR_NUMBER:$PR_NUMBER -f manifests/prombench/nodes_gke.yaml +``` + +- Deploy the k8s objects + +``` +../infra/infra gke resource apply -a $AUTH_FILE \ + -v ZONE:$ZONE -v PROJECT_ID:$PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ + -v PR_NUMBER:$PR_NUMBER -v RELEASE:$RELEASE -v DOMAIN_NAME:$DOMAIN_NAME \ + -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ + -f manifests/prombench/benchmark +``` diff --git a/prombench/manifests/prombench/nodepools.yaml b/prombench/manifests/prombench/nodes_gke.yaml similarity index 100% rename from prombench/manifests/prombench/nodepools.yaml rename to prombench/manifests/prombench/nodes_gke.yaml From 71b17c9397a85541fd89a4b333edef68a5410479 Mon Sep 17 00:00:00 2001 From: Drumil Patel Date: Sat, 15 Aug 2020 22:01:59 +0530 Subject: [PATCH 3/5] Add PROVIDER variable in funcbench and prombench make file, change documentation to make it more general Signed-off-by: Drumil Patel --- .github/workflows/grafana_dashboard.yaml | 2 +- funcbench/Makefile | 13 +++++++------ prombench/Makefile | 22 ++++++++++++---------- prombench/README.md | 8 ++++---- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.github/workflows/grafana_dashboard.yaml b/.github/workflows/grafana_dashboard.yaml index 4a73bf6ab..f096086cf 100644 --- a/.github/workflows/grafana_dashboard.yaml +++ b/.github/workflows/grafana_dashboard.yaml @@ -14,7 +14,7 @@ jobs: id: apply_configmap uses: docker://prominfra/prombench:master env: - AUTH_FILE: ${{ secrets.TEST_INFRA_GKE_AUTH }} + AUTH_FILE: ${{ secrets.TEST_INFRA_PROVIDER_AUTH }} GKE_PROJECT_ID: macro-mile-203600 CLUSTER_NAME: test-infra ZONE: europe-west3-a diff --git a/funcbench/Makefile b/funcbench/Makefile index 0ddac1462..7eae4c546 100644 --- a/funcbench/Makefile +++ b/funcbench/Makefile @@ -1,5 +1,6 @@ INFRA_CMD ?= ../infra/infra +PROVIDER ?= gke ifeq ($(PACKAGE_PATH),) PACKAGE_PATH = ./... endif @@ -11,17 +12,17 @@ deploy: cluster_create resource_apply clean: resource_delete cluster_delete cluster_create: - $(INFRA_CMD) gke cluster create -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) cluster create -a ${AUTH_FILE} \ -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/cluster_gke.yaml + -f manifests/cluster_$(PROVIDER).yaml cluster_delete: - $(INFRA_CMD) gke cluster delete -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) cluster delete -a ${AUTH_FILE} \ -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v ZONE:${ZONE} -v CLUSTER_NAME:funcbench-${PR_NUMBER} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/cluster_gke.yaml + -f manifests/cluster_$(PROVIDER).yaml resource_apply: - $(INFRA_CMD) gke resource apply -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) resource apply -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:funcbench-${PR_NUMBER} \ -v PR_NUMBER:${PR_NUMBER} -v GITHUB_TOKEN:${GITHUB_TOKEN} \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ @@ -31,7 +32,7 @@ resource_apply: # Removal of namespace should be at the end, after all other resources get removed. resource_delete: - $(INFRA_CMD) gke resource delete -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) resource delete -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:funcbench-${PR_NUMBER} \ -v PR_NUMBER:${PR_NUMBER} -v GITHUB_TOKEN:${GITHUB_TOKEN} \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ diff --git a/prombench/Makefile b/prombench/Makefile index 9bc3e4a53..1ae2c5975 100644 --- a/prombench/Makefile +++ b/prombench/Makefile @@ -1,5 +1,7 @@ INFRA_CMD ?= ../infra/infra +PROVIDER ?= gke + .PHONY: deploy clean deploy: nodepool_create resource_apply # GCP sometimes takes longer than 30 tries when trying to delete nodepools @@ -7,12 +9,12 @@ deploy: nodepool_create resource_apply clean: resource_delete nodepool_delete nodepool_create: - $(INFRA_CMD) gke nodes create -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) nodes create -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodes_gke.yaml + -f manifests/prombench/nodes_$(PROVIDER).yaml resource_apply: - $(INFRA_CMD) gke resource apply -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) resource apply -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} \ -v PR_NUMBER:${PR_NUMBER} -v RELEASE:${RELEASE} -v DOMAIN_NAME:${DOMAIN_NAME} \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ @@ -20,24 +22,24 @@ resource_apply: # Required because namespace and cluster-role are not part of the created nodepools resource_delete: - $(INFRA_CMD) gke resource delete -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) resource delete -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ -f manifests/prombench/benchmark/1c_cluster-role-binding.yaml \ -f manifests/prombench/benchmark/1a_namespace.yaml nodepool_delete: - $(INFRA_CMD) gke nodes delete -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) nodes delete -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodes_gke.yaml + -f manifests/prombench/nodes_$(PROVIDER).yaml all_nodepools_running: - $(INFRA_CMD) gke nodes check-running -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) nodes check-running -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} \ -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodes_gke.yaml + -f manifests/prombench/nodes_$(PROVIDER).yaml all_nodepools_deleted: - $(INFRA_CMD) gke nodes check-deleted -a ${AUTH_FILE} \ + $(INFRA_CMD) $(PROVIDER) nodes check-deleted -a ${AUTH_FILE} \ -v ZONE:${ZONE} -v GKE_PROJECT_ID:${GKE_PROJECT_ID} \ -v CLUSTER_NAME:${CLUSTER_NAME} -v PR_NUMBER:${PR_NUMBER} \ - -f manifests/prombench/nodes_gke.yaml + -f manifests/prombench/nodes_$(PROVIDER).yaml diff --git a/prombench/README.md b/prombench/README.md index 3970abf76..a63c66ae8 100644 --- a/prombench/README.md +++ b/prombench/README.md @@ -13,18 +13,18 @@ The `/manifest` directory contains all the kubernetes manifest files. - `cluster-infra/` : These are the persistent components of the Main Node. - `prombench/` : These resources are created and destroyed for each prombench test. -## Providers +## Setup and run prombench -Presently prombench supports following providers: +Following sections consist of detail documentation to run prombench in their respective providers. -- [Google Kubernetes Engine](docs/gke.md) +- Instructions for [Google Kubernetes Engine](docs/gke.md) ## Setup GitHub Actions Place a workflow file in the `.github` directory of the repository. See the [prometheus/prometheus](https://github.com/prometheus/prometheus) repository for an example. -Create a github action `TEST_INFRA_GKE_AUTH` secret with the base64 encoded content of the `service-account.json` file. +Create a github action `TEST_INFRA_PROVIDER_AUTH` secret with the base64 encoded content of the `service-account.json` file. ``` cat $AUTH_FILE | base64 -w 0 From eb5ce46f9ae0fb9010d07b693b7f1e9139548c27 Mon Sep 17 00:00:00 2001 From: Drumil Patel Date: Sat, 15 Aug 2020 22:43:02 +0530 Subject: [PATCH 4/5] Improve documentation for prombench Signed-off-by: Drumil Patel --- prombench/README.md | 4 ++-- prombench/docs/gke.md | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/prombench/README.md b/prombench/README.md index a63c66ae8..65df82a80 100644 --- a/prombench/README.md +++ b/prombench/README.md @@ -15,7 +15,7 @@ The `/manifest` directory contains all the kubernetes manifest files. ## Setup and run prombench -Following sections consist of detail documentation to run prombench in their respective providers. +Prombench can be run on various providers, following are the provider specific instructions: - Instructions for [Google Kubernetes Engine](docs/gke.md) @@ -24,7 +24,7 @@ Following sections consist of detail documentation to run prombench in their res Place a workflow file in the `.github` directory of the repository. See the [prometheus/prometheus](https://github.com/prometheus/prometheus) repository for an example. -Create a github action `TEST_INFRA_PROVIDER_AUTH` secret with the base64 encoded content of the `service-account.json` file. +Create a github action `TEST_INFRA_PROVIDER_AUTH` secret with the base64 encoded content of the `AUTH_FILE`. ``` cat $AUTH_FILE | base64 -w 0 diff --git a/prombench/docs/gke.md b/prombench/docs/gke.md index f191a8596..9845d7bf8 100644 --- a/prombench/docs/gke.md +++ b/prombench/docs/gke.md @@ -69,6 +69,8 @@ export GITHUB_REPO=prometheus - Prometheus :: `http:///prometheus-meta` - Logs :: `http:///grafana/explore` +## Usage + ### Start a benchmarking test manually --- From 09bf89e75f7ce5ddc606812cee9cec184a5a4600 Mon Sep 17 00:00:00 2001 From: Drumil Patel Date: Sun, 16 Aug 2020 03:11:12 +0530 Subject: [PATCH 5/5] Replace occurence of PROJECT_ID to GKE_PROJECT_ID in gke.md Signed-off-by: Drumil Patel --- prombench/docs/gke.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/prombench/docs/gke.md b/prombench/docs/gke.md index 9845d7bf8..8c75ad768 100644 --- a/prombench/docs/gke.md +++ b/prombench/docs/gke.md @@ -18,12 +18,12 @@ Run prombench tests in [Google Kubernetes Engine](https://cloud.google.com/kuber - Set the following environment variables and deploy the cluster. ``` -export PROJECT_ID= +export GKE_PROJECT_ID= export CLUSTER_NAME=prombench export ZONE=us-east1-b export AUTH_FILE= -../infra/infra gke cluster create -a $AUTH_FILE -v PROJECT_ID:$PROJECT_ID \ +../infra/infra gke cluster create -a $AUTH_FILE -v GKE_PROJECT_ID:$GKE_PROJECT_ID \ -v ZONE:$ZONE -v CLUSTER_NAME:$CLUSTER_NAME -f manifests/cluster_gke.yaml ``` @@ -50,7 +50,7 @@ export GITHUB_REPO=prometheus - Deploy the [nginx-ingress-controller](https://github.com/kubernetes/ingress-nginx), Prometheus-Meta, Loki, Grafana, Alertmanager & Github Notifier. ``` -../infra/infra gke resource apply -a $AUTH_FILE -v PROJECT_ID:$PROJECT_ID -v ZONE:$ZONE \ +../infra/infra gke resource apply -a $AUTH_FILE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v ZONE:$ZONE \ -v CLUSTER_NAME:$CLUSTER_NAME -v DOMAIN_NAME:$DOMAIN_NAME \ -v GRAFANA_ADMIN_PASSWORD:$GRAFANA_ADMIN_PASSWORD \ -v SERVICEACCOUNT_CLIENT_EMAIL:$SERVICEACCOUNT_CLIENT_EMAIL \ @@ -86,7 +86,7 @@ export PR_NUMBER= ``` ../infra/infra gke nodes create -a $AUTH_FILE \ - -v ZONE:$ZONE -v PROJECT_ID:$PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ + -v ZONE:$ZONE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ -v PR_NUMBER:$PR_NUMBER -f manifests/prombench/nodes_gke.yaml ``` @@ -94,7 +94,7 @@ export PR_NUMBER= ``` ../infra/infra gke resource apply -a $AUTH_FILE \ - -v ZONE:$ZONE -v PROJECT_ID:$PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ + -v ZONE:$ZONE -v GKE_PROJECT_ID:$GKE_PROJECT_ID -v CLUSTER_NAME:$CLUSTER_NAME \ -v PR_NUMBER:$PR_NUMBER -v RELEASE:$RELEASE -v DOMAIN_NAME:$DOMAIN_NAME \ -v GITHUB_ORG:${GITHUB_ORG} -v GITHUB_REPO:${GITHUB_REPO} \ -f manifests/prombench/benchmark