Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: Changes from v2 for release 2.8.3 #5751

Merged
merged 20 commits into from
Jul 15, 2024
Merged

ci: Changes from v2 for release 2.8.3 #5751

merged 20 commits into from
Jul 15, 2024

Conversation

sakoush
Copy link
Member

@sakoush sakoush commented Jul 15, 2024

No description provided.

lc525 and others added 20 commits June 21, 2024 16:51
Adds a number of reusable features to the k6 scenarios, so that we may periodically check that the state of objects (models, pipelines) on the seldon scheduler matches their state as viewed from the operator (k8s) side.

- k6 periodic randezvous implementation, with time slots where VU 1 executes code exclusively and other VUs wait. This is needed because we need other VUs to stop making changes to the state while we check consistency
- fetching object status from scheduler via k6 grpc streaming
- use of async operations during VU iteration code
- adds detailed state consistency checks for Models and Pipelines

**Which issue(s) this PR fixes:**
- INFRA-1026 (Internal): Add automated state consistency checks to k6
* add experiments for stress tests shell script

* update request header

* fix script index

* infer fixes

* add note in code

* script fixes
Bumps grafana/grafana from 11.0.0 to 11.1.0.

---
updated-dependencies:
- dependency-name: grafana/grafana
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps envoyproxy/envoy from v1.30.2 to v1.30.4.

---
updated-dependencies:
- dependency-name: envoyproxy/envoy
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Additional printcolumns for CRs covered in this change:
 - Models: ModelReady, Replicas, Age
![CR-printfields-models](https://github.com/SeldonIO/seldon-core/assets/19005/2a1426ee-8c73-4308-8e3c-5f26d340841c)

 - Pipelines: Ready, ModelsReady*, PipelineReady*, Message, Age
![CR-printfields-pipelines](https://github.com/SeldonIO/seldon-core/assets/19005/b9abbb90-532b-476e-8308-c83cd8be9832)

 - Servers: Ready, Replicas, Loaded Models, Age
 ![CR-printfields-servers](https://github.com/SeldonIO/seldon-core/assets/19005/fe57d640-05e2-4d8c-b17a-d915f4f083a7)

 - Experiments: ExperimentReady, CandidatesReady*, MirrorReady*, Message, Age
 ![CR-printfields-experiments](https://github.com/SeldonIO/seldon-core/assets/19005/e482756e-9dc4-4124-97c4-9a34b01d38c0)


The additional columns show up when getting the list of objects of a given type via `kubectl get`, and subsequently also show up in k9s.

Printcolumns marked with * above only show up when running `kubectl get ... -o wide`

* Add tests for fields used in kubebuilder:printcolumn comments

Those tests fail if we modify the CRDs in a way which changes the names
of the fields printed in kubebuilder:printcolumn

**Which issue(s) this PR fixes**:
Fixes #INFRA-1058 (internal): Print additional fields for seldon-specific CRDs
…5729)

Bumps [org.junit.jupiter:junit-jupiter-params](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit5@r5.10.2...r5.10.3)

---
updated-dependencies:
- dependency-name: org.junit.jupiter:junit-jupiter-params
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/go-playground/validator/v10](https://github.com/go-playground/validator) from 10.20.0 to 10.22.0.
- [Release notes](https://github.com/go-playground/validator/releases)
- [Commits](go-playground/validator@v10.20.0...v10.22.0)

---
updated-dependencies:
- dependency-name: github.com/go-playground/validator/v10
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps ubi9/openjdk-17-runtime from 1.18 to 1.20.

---
updated-dependencies:
- dependency-name: ubi9/openjdk-17-runtime
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Allow protoc and the language-specific plugins to be installed at specific versions locally and then use those versions to generate code.

This means we no longer depend on arbitrary versions installed on the system doing the code generation, making this reproducible.

The installs happen in the `apis/tools` directory, if the required tools are not found. Python packages are installed in a virtual environment under `apis/tools/python`

In this first phase, we retain the exact same tool versions that were used to generate the existing protobuf/grpc code. We also apply the licensing headers to those generated files automatically.

Because of a previous mismatch in how those licensing headers were generated, most generated files end up with a minor whitespace difference.

[IMPORTANT]: The kotlin/java codegen for `apis/mlops/v2_dataplane/v2_dataplane.proto` had not been previously generated using the makefile (it seems it was generated as a one-off). This means the version of the codegen tools used was already mismatched compared to the rest. Consequently, this PR adds this code generation to the Makefile, and re-generates the code files in order to bring everything to a consistent version.

**Issue(s) related to this PR**:

- INFRA-1076 - facilitate protobuf/gRPC codegen version updates
…gs (#5747)

This removes a number of warnings when running recent golangci-lint versions
…5746)

- Old community.docker versions not compatible with `requests` python package
>= 2.32.0, leading to errors when executing the `kind` role
- Update docs
* remove dead code path

* skip restoring an experiment if there is an error.

* add a note that we do not validate pipelines when we restore them

* deal with deleted experiments on restore

* use a call back for deleted experiments

* add test for multiple experiments in db

* update store to mark deleted experiments

* add experiment get (for testing)

* Add active field in experiment protos

* add deleted instead of active

* make deleted field not optional

* handle deleted in controller for experiments

* fix restoring of experiments

* add compare for the entire proto

* add pipeline get from db helper (for testing)

* add test for db check after adding pipeline

* add testing coverage

* revert changes to operator as they are not required anymore

* add experiment db migration helper

* reinstate delete helper for DBss

* simplify get from DB

* add testing for delete from db

* add scafolding to get the version from the (experiment) db

* use `dropall` helper to clear db

* optimize how to migrate to the new version

* refactor common code to utils

* add version to pipelinedb

* add helper to get the number of experiments

* add helper to count the number of expriments from the scheduler

* handle load experiments on startup of controller.

* remove finalizers for experiments if there are no experiments from scheduler

* simplify removing finalizers for experiments

* add tests for experiments utils

* refactor model handlers and add tests

* add pipeline handlers and tests

* add helper to get pipeline status from scheduler

* Add status subresoruce to fake client

* pass grpc client instead of conn to subscriptions

* add test for pipeline subscription

* add a test for pipeline termination

* add experiment tests

* add test case for pipelines

* check pipelineready status

* add a test case when pipeline is removed

* add note about expected state

* add 2 extra test cases to cover when the resource doesn exist in k8s

* deal with errors

* update copyright

* revert back upgrade to protoc

* use grpc client in StopExperiment instead of the underlying connection

* fix mis-spelled grpc vars in controller

* use Be[True/False]Because pattern in experiments and pipelines tests

* rename function for current db migration

* fix mispelling pipeline->experiment
@sakoush sakoush requested a review from lc525 as a code owner July 15, 2024 10:00
Copy link
Member

@lc525 lc525 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@sakoush sakoush merged commit 486ff2d into release-2.8 Jul 15, 2024
16 checks passed
@sakoush sakoush added the v2 label Oct 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants