Skip to content

Commit

Permalink
Operator Onboarding Setup Tool Improvements (#756)
Browse files Browse the repository at this point in the history
* Update and add operators

* Fix results directory

* Minor fixes

* Perf tool improvements
  • Loading branch information
rajivnathan authored and jinqi7 committed Jul 4, 2023
1 parent a56a239 commit 0963c87
Show file tree
Hide file tree
Showing 10 changed files with 2,709 additions and 148 deletions.
31 changes: 9 additions & 22 deletions setup/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document describes how to use the setup tool to set up a Dev Sandbox enviro

== Prereqs

. Provision the *latest available* GA version of *OCP 4.12.x* on AWS with sufficient resources: 3 `m5.12xlarge` master nodes and 3 `m5.2xlarge` worker nodes.
. Provision the *latest available* GA version of *OCP 4.13.x* on AWS with sufficient resources: 3 `m5.8xlarge` master nodes and 3 `m5.2xlarge` worker nodes.
+
The latest version of openshift-install can be downloaded from https://mirror.openshift.com/pub/openshift-v4/clients/ocp/
+
Expand All @@ -18,7 +18,7 @@ controlPlane:
name: master
platform:
aws:
type: "m5.12xlarge"
type: "m5.8xlarge"
replicas: 3
compute:
- hyperthreading: Enabled
Expand Down Expand Up @@ -90,24 +90,16 @@ toolchain-status 0 True 2021-03-24T22:39:36Z
go run setup/main.go --users 1 --default 1 --custom 0 --username setup -b 1
```
+
After the command completes it will print performance metrics that can be used for comparison against the baseline metrics.
After the command completes it will print performance metrics that can be used for comparison against the baseline metrics. The results are saved to a .csv file to make it easier to copy the results into the spreadsheet.
+
Add the results to the Onboarding Performance Checklist spreadsheet in the `Onboarding Operator 1 user` column.
+
. Populate the cluster with 2000 users along with default and custom resources for each user.
+
Creating 2000 users can take a long time so it's better to run the setup tool concurrently to speed up the process. Run the following command in 2 separate terminals using a unique username prefix in each terminal.
+
Terminal 1:
+
```
go run setup/main.go --template=<path_to_onboarding_template_from_prereq_step> --users 1000 --default 1000 --custom 1000 --username cupcake --workloads namespace:deploymentName
```
+
Terminal 2:
Run the following command to create 2000 users
+
```
go run setup/main.go --template=<path_to_onboarding_template_from_prereq_step> --users 1000 --default 1000 --custom 1000 --username cheesecake --workloads namespace:deploymentName
go run setup/main.go --template=<path_to_onboarding_template_from_prereq_step> --users 2000 --default 2000 --custom 2000 --username cupcake --workloads namespace:deploymentName
```
+
Note 1: You do not need to add the default template (https://raw.githubusercontent.com/codeready-toolchain/toolchain-e2e/master/setup/resources/user-workloads.yaml[setup/resources/user-workloads.yaml]), it is automatically added when you run the setup. You can control how many users will have the default template applied using the `--default` flag.
Expand All @@ -117,7 +109,7 @@ Note 2: The `--workloads` flag tells the tool to capture the CPU and memory of a
Note 3: CSV resources are automatically created for each default user as well. An all-namespaces scoped operator will be installed as part of the 'preparing' step. This operator will create a CSV resource in each namespace to mimic the behaviour observed in the production cluster. This operator install step can be skipped with the `--skip-csvgen` flag but should not be skipped without good reason.
+
Use `go run setup/main.go --help` to see the full set of options. +
. Grab some coffee ☕️, populating the cluster with 2000 users can take over 4 hours depending on network latency +
. Grab some coffee ☕️, populating the cluster with 2000 users usually takes about an hour but can take longer depending on network latency +
Note: If for some reason the provisioning users step does not complete (eg. timeout), note down how many users were created and rerun the command with the remaining number of users to be created and a different username prefix. eg. `go run setup/main.go --template=<path to a custom user-workloads.yaml file> --username zorro --users <number_of_users_left_to_create> --default <num_users_default_user_workloads_template> --custom <num_users_custom_user_workloads_template>`
+
. After the command completes it will print performance metrics that can be used for comparison against the baseline metrics.
Expand All @@ -130,7 +122,7 @@ With the cluster now under load, it's time to evaluate the environment.

1. Use your operators as a user would and evaluate the performance.
2. Monitor the cluster's performance using the Monitoring view in the OpenShift Console.
3. Monitor the memory usage of operators. There are many more resources created on this cluster than most operators have been tested with so it's important to look for any possible areas for concern.
3. Monitor the memory usage of operators. There are many more resources created on this cluster than most operators have been tested with so it's important to look for any possible areas of concern.
4. Compare the Results summary to the Baseline metrics provided in the onboarding doc.

== Clean up
Expand All @@ -155,12 +147,7 @@ make clean-e2e-resources
go run setup/main.go --users 1 --default 1 --custom 0 --username setup -b 1
```

2. Run setup for 1000 users in terminal 1
```
go run setup/main.go --users 1000 --default 1000 --custom 0 --username pizza
```

3. Run setup for 1000 users in terminal 2
2. Run setup for 2000 users
```
go run setup/main.go --users 1000 --default 1000 --custom 0 --username pasta
go run setup/main.go --users 2000 --default 2000 --custom 0 --username pizza
```
Loading

0 comments on commit 0963c87

Please sign in to comment.