5694 Commits

Author SHA1 Message Date
Tarun Pothulapati
f3efa0be29 [ws-rollout] Fix Build Versioning
This PR updates the Version field in root to
be set correctly and also use the same with
the cobra CLI.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-24 08:10:31 +01:00
Brad Harris
6310989e27 updates from review feedback 2023-01-23 20:46:31 +01:00
Brad Harris
f8af920c4d handle when idb isn't available 2023-01-23 20:46:31 +01:00
Brad Harris
bed2e7f459 figuring out how to handle when idb doesn't work 2023-01-23 20:46:31 +01:00
Brad Harris
7a9e2241e5 Persist query client in indexed db 2023-01-23 20:46:31 +01:00
Brad Harris
58bf85ac57 wip for setting up persisted query client 2023-01-23 20:46:31 +01:00
Brad Harris
95105e34c7 adding deps for rq persisting 2023-01-23 20:46:31 +01:00
Jean Pierre
a4af8b34d1 [supervisor] Do not log error when it has Canceled code 2023-01-23 19:15:31 +01:00
Tarun Pothulapati
3f7eb00841 fix go build pkg error
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
ace1c2f56b rollout: Support rollout step score that are not factors of 100
This is done by doing
 `int32(math.Min(float64(r.currentScore+r.rolloutStep), 100))`

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
56ebbfd525 remove mentions of logrus
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
0a03b1ce35 analaysis: Switch to enums in MoveForward
DecisionRevert means to revert
DecisionNoData means that there is no data to make an informed decision
DecisionMoveForward means to move forward based on data

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
65203f34f1 Update README.md & grammatical improvements
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
250c4493bf hack: never re-run the job on error
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
46592082a0 analysis: Use prometheusURL instead of port-forward'ing
This also removes the unnecessary FindAnyPodOwnedBy helper function
that was added

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
98892234ff job: return the right exit status
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
14e015390f rollout: don't wait for the first ticker
also, Fix unit test regression

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
5b2f604e4a rollout: revert on interrupt signal
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
061167dba7 return correctly after rollout or failure
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
2f8cbb78d9 replace error ratio analyzer with workspace key metrics analyzer
This Commit also removes the old error rate analyzer.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
ed79a89d6b analysis: Add new No Data Variant & Target Based Metric Analysis
\# `No Data` Variant

This commit adds a new variant that the `Analysis.MoveForward`
function can return. This variant is used to indicate that there
isn't enough data to make a concrete decision about the rollout.

This is then coupled with the `Rollout.OkayScoreUntilNoData` to
move rollout forward until a specific point even when there is
no data so that data can actually be created. If no data
is present even after `OkayScoreUntilNoData` is reached, then
we rollback as we aren't making an informed rollout. If positive,
we move forward. If negative, we rollback.

\# Target Based Metric Analysis

In this commit, We add a new `ErrorRatioAnalyzer` through which we
calculate the success target percentage by doing
((totalRequests - errorRequests)/totalRequests) * 100 and compare it
with the target percentage provided by the user. This means users can
specify a target percentage (i.e 99%, etc) at which a new cluster
can be considered safe. We rollback, If it is less than that.

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
7d89d674b6 rollout: Handle analysis error gracefully
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
6bad28232a cleanup: move settings out
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
05f06ee744 Make the job work inside a cluster
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
4681062c30 rollout: remove error wrapping and waiting in tests
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
c134bd8798 add hack directory for rollout job
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
9267d33f1a add new prometheus metrics endpoint using common-go/base-server
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
f24191c769 Move rollout and analysis into separate packages
This also includes:
- make actions using RolloutAction Interface
- abstract out the analysis logic into a separate package
- bugfix: don't close the channel
- working prototype with metric analysis
- logs refactor

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
13f6345a3c add prometheus package for metric analysis
Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Tarun Pothulapati
db8b7b7ec2 Add new `workspace-rollout-job to components
Basic rollout works, but without metric analysis

Signed-off-by: Tarun Pothulapati <tarun@gitpod.io>
2023-01-23 18:01:31 +01:00
Milan Pavlik
17e83b9985 [iam] Remove component 2023-01-23 17:33:31 +01:00
Gero Posmyk-Leinemann
ab6895e4b7 [db] Make 'leeway run components/gitpod-db:init-testdb' the new default for starting test dbs 2023-01-23 16:51:30 +01:00
Milan Pavlik
27f1ba0939 [public-api] Move oidc handler package from iam 2023-01-23 15:45:31 +01:00
Wouter Verlaek
8aa5a1d12c [ws-manager-mk2] Add print columns and shortname 2023-01-23 15:41:31 +01:00
Wouter Verlaek
0d9b56d8fa Cleanup withoutWorkspaceComponents flag usage 2023-01-23 15:37:32 +01:00
Milan Pavlik
5cc1ab99f5 [proxy] Route /iam/* to public-api-server 2023-01-23 15:31:31 +01:00
Milan Pavlik
0aad145ad4 [public-api] Bind OIDC HTTP service to Public API 2023-01-23 15:24:30 +01:00
Andrew Farries
4b9a5fd5b1 Use a valid UUID for the admin user 2023-01-23 14:48:30 +01:00
Deepayan Mukherjee
1e694f0b4b Added search loader
Signed-off-by: Deepayan Mukherjee <deepayanmukherjee1312@gmail.com>
2023-01-23 14:15:31 +01:00
Thomas Schubart
cb6fc74429 [ws-daemon] Do not hide errors 2023-01-23 14:14:30 +01:00
Christian Weichel
572fcbb008 [ws-daemon] Start workspace controller based content init 2023-01-23 14:14:30 +01:00
Christian Weichel
7ca2a11572 [ws-manager-mk2] Remove ws-daemon connection 2023-01-23 14:14:30 +01:00
Christian Weichel
a3f8d86f3b [ws-manager-mk2] Fix build after rebase 2023-01-23 14:14:30 +01:00
Christian Weichel
a991690e8e [ws-manager-mk2] Introduce first controller test 2023-01-23 14:14:30 +01:00
Christian Weichel
99bff04aa5 [ws-manager-mk2] Rework CRD to better match k8s best practice 2023-01-23 14:14:30 +01:00
Christian Weichel
aef9b4e880 [ws-manager-mk2] Fix the build 2023-01-23 14:14:30 +01:00
Christian Weichel
f40cb83bac [ws-manager-mk2] Add fixture tests 2023-01-23 14:14:30 +01:00
Christian Weichel
8caac1cd5b [ws-manager-mk2] Integrate into installer 2023-01-23 14:14:30 +01:00
Christian Weichel
f91abd8a1e [ws-manager-mk2] Add workspace class support 2023-01-23 14:14:30 +01:00
Christian Weichel
56961e02a1 [ws-manager-mk2] Improve status extraction 2023-01-23 14:14:30 +01:00