-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Scheduler: Building Block & Control Plane Service #7716
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
yaron2
added
the
autoupdate
DaprBot will keep the Pull Request up to date with master branch
label
May 3, 2024
* Chore: update artifact actions The `master` tag was pointing to a very old build that sometimes failed (the "master" branch is now "main"). More appropriately pointing to a version now. Also, changed to avoid compressing artifacts that are already compressed. In the process, also updated other actions including setup-go, which comes with its own caching for Go deps so we don't need the custom cache tasks Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Fix Windows artifact publishing Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * More small tweaks Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> --------- Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Co-authored-by: Artur Souza <asouza.pro@gmail.com> Co-authored-by: Loong Dai <long.dai@intel.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
…apr#7318) * Cherry-pick dapr#7029 Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * WIP: Add config options to Helm chart and configure injector Co-authored-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Co-authored-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> * Pass Actors/Reminders options to daprd Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> * Fixed passing actor service Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Also pass remindersService configuration Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * go.mod change Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> * Revert Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> * Revert Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> * placement address corection in tpl Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> * Auto-loading of placement and reminders providers Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Small fixes Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Fixed bug in injector Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Added log Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Add headers Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> --------- Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Signed-off-by: Deepanshu Agarwal <deepanshu.agarwal1984@gmail.com> Co-authored-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
…uilding block (dapr#7390) * E2E tests for the crypto building block Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Fixed build with subtlecrypto Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> --------- Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Artur Souza <asouza.pro@gmail.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Artur Souza <asouza.pro@gmail.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Tune actor app health check to become healthy sooner Signed-off-by: joshvanl <me@joshvanl.dev> * Reset failure count to 0 on a healthy actor app health check Signed-off-by: joshvanl <me@joshvanl.dev> * Move wait group to just before go routine Signed-off-by: joshvanl <me@joshvanl.dev> * Change failure threshold `int32` -> `int` Signed-off-by: joshvanl <me@joshvanl.dev> * Fix actors health checker Signed-off-by: joshvanl <me@joshvanl.dev> * Returns `errors.Join` for actors `Close` procedure Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Updating protos Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * enable recursive terminate/purge Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Updating dtf-go Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * updating contrib Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Correct proto generated files Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * update comment Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * implementing getOrchestrationRuntimeState Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Adding unit tests Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * make modtidy-all Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Adding recursive option in query parameter Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Adding integration test for workflow Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * fix bug in Creating sub-orchestrations Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Setting recursive/terminate purge to default and adding tests for same Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * linter fixes Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Removing fix from this PR Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * renaming to Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * linter fixes Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> --------- Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com> Co-authored-by: Loong Dai <long.dai@intel.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
* Updated pinned components-contrib Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Fixed integration tests Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * downgrade json-patch due to breaking change Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Updated json-patch to 5.8.1 Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> --------- Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Removes vnodes from placement table message Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds vnodes calculation on the sidecar Signed-off-by: Elena Kolevska <elena@kolevska.com> * Removes log line Signed-off-by: Elena Kolevska <elena@kolevska.com> * Backwards compatibility for placement tables without vnodes Signed-off-by: Elena Kolevska <elena@kolevska.com> * Update Signed-off-by: Elena Kolevska <elena@kolevska.com> * Fixes Signed-off-by: Elena Kolevska <elena@kolevska.com> * Account for daprd at 1.13 and placement at < 1.13 Signed-off-by: Elena Kolevska <elena@kolevska.com> * Missed var Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds unit tests Signed-off-by: Elena Kolevska <elena@kolevska.com> * Cleaning up Signed-off-by: Elena Kolevska <elena@kolevska.com> * Fixes Signed-off-by: Elena Kolevska <elena@kolevska.com> * Small optimisation Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds caching for vnodes Signed-off-by: Elena Kolevska <elena@kolevska.com> * Update pkg/placement/hashing/consistent_hash.go Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com> Signed-off-by: Elena Kolevska <elena-kolevska@users.noreply.github.com> * Fixes after review Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds unit test for the Virtual nodes cache Signed-off-by: Elena Kolevska <elena@kolevska.com> * lint fix Signed-off-by: Elena Kolevska <elena@kolevska.com> * Update tests Signed-off-by: Elena Kolevska <elena@kolevska.com> * Fixes linter errors Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds tests for actor service properly handling the old and new version of placement tables Signed-off-by: Elena Kolevska <elena@kolevska.com> * small improvement Signed-off-by: Elena Kolevska <elena@kolevska.com> --------- Signed-off-by: Elena Kolevska <elena@kolevska.com> Signed-off-by: Elena Kolevska <elena-kolevska@users.noreply.github.com> Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: yaron2 <schneider.yaron@live.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Mark actors healthy on no app channel or actor entities Mark actors as always healthy when there is no app channel or their have been no actor entities (actor types) provided by the application config endpoint. This is important for enabling actor related APIs such as workflows, which don't rely on the application implementing actors itself. Signed-off-by: joshvanl <me@joshvanl.dev> * Adds integration tests for actor healthz endpoints Most importantly, ensuring that actors are marked as always healthy when the both the application healthz endpoint is disabled, and the application reports no actor entities. Signed-off-by: joshvanl <me@joshvanl.dev> * Remove uneeded app health check store Signed-off-by: joshvanl <me@joshvanl.dev> * Update tests/integration/suite/actors/healthz/endpoint/noapp.go Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com> Signed-off-by: Artur Souza <asouza.pro@gmail.com> * Update tests/integration/suite/actors/healthz/endpoint/noappentities.go Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com> Signed-off-by: Artur Souza <asouza.pro@gmail.com> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Signed-off-by: Artur Souza <asouza.pro@gmail.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com> Co-authored-by: Artur Souza <asouza.pro@gmail.com> Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* append app token to outgoing calls, if it is provided Signed-off-by: Ryan Kelly <gatedlogic@live.com> * use declare and assign syntax Signed-off-by: Ryan Kelly <gatedlogic@live.com> --------- Signed-off-by: Ryan Kelly <gatedlogic@live.com> Co-authored-by: Ryan Kelly <gatedlogic@live.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* WIP Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Bunch of fixes in tests Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * More test fixes Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * More test fixes Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * More tweaks Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * More test fixes Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Fixes and improvements to code legibility Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Use a lock around internalActors property Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * 💄 Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Fixed last test Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Changed per review feedback: use a single struct for reminders and timers Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * WIP: use factory for internal actors Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Improve APIs for internal actors Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> * Updated comment Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> --------- Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com> Co-authored-by: Loong Dai <long.dai@intel.com>
Account for Windows specific host connection errors in the mtls standalone disable test. This makes parity with the kubernetes test. Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
…vel` (dapr#7400) Updates the placement API Level gRPC context key from `ApiLevel` to `dapr-placement-api-level`. Although collisions are highly unlikely, it could be considered more "correct" and best practice to namespace our application specific metadata keys. This isn't a breaking change as this key hasn't been part of a release yet. Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
…apr#7041) * Injector: Change daprd projected token audience to sentry SPIFFE ID Signed-off-by: joshvanl <me@joshvanl.dev> * Linting Signed-off-by: joshvanl <me@joshvanl.dev> * Change SidecarConfig to use string type for SentrySPIFFEID Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Cascade terminate/Purge Workflow Support (dapr#7340) * Updating protos Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * enable recursive terminate/purge Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Updating dtf-go Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * updating contrib Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Correct proto generated files Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * update comment Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * implementing getOrchestrationRuntimeState Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Adding unit tests Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * make modtidy-all Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Adding recursive option in query parameter Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Adding integration test for workflow Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * fix bug in Creating sub-orchestrations Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Setting recursive/terminate purge to default and adding tests for same Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * linter fixes Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * Removing fix from this PR Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * renaming to Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> * linter fixes Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> --------- Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com> Co-authored-by: Loong Dai <long.dai@intel.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Viktor Subota <viktor.subota@c.delinea.com> * Add priorityClassName parameter to Helm chart Signed-off-by: Viktor Subota <viktor.subota@c.delinea.com> * Add priorityClassName to README doc Signed-off-by: Viktor Subota <viktor.subota@c.delinea.com> --------- Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> Signed-off-by: Viktor Subota <viktor.subota@c.delinea.com> Co-authored-by: Shivam Kumar <shivamkm07@gmail.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com> Co-authored-by: Loong Dai <long.dai@intel.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Co-authored-by: Viktor Subota <viktor.subota@c.delinea.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Fix vnode response to placement clients. Fixes vnode response to placement clients to be backwards compatible. Makes the API level check based on cluster level, rather than on a per request basis. Remove placement API level gRPC context metadata. Signed-off-by: joshvanl <me@joshvanl.dev> * Fix method used in int sa grpc test Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
…e caller (dapr#7406) * Prevent invalid traceparent ("00-00000...") from being returned to the caller Signed-off-by: Karsten Wintermann <58027075+KarstenWintermann@users.noreply.github.com> * OpenTelemetry trace context not transmitted when using rawPayload with Kafka Fixes dapr#7372 Signed-off-by: Karsten Wintermann <58027075+KarstenWintermann@users.noreply.github.com> --------- Signed-off-by: Karsten Wintermann <58027075+KarstenWintermann@users.noreply.github.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Co-authored-by: Artur Souza <asouza.pro@gmail.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* fix skew tests Signed-off-by: yaron2 <schneider.yaron@live.com> * Add patch file for e2e error condition. Signed-off-by: Artur Souza <asouza.pro@gmail.com> * Movie skew E2E patch to the right folder. Signed-off-by: Artur Souza <asouza.pro@gmail.com> --------- Signed-off-by: yaron2 <schneider.yaron@live.com> Signed-off-by: Artur Souza <asouza.pro@gmail.com> Co-authored-by: Artur Souza <asouza.pro@gmail.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> Co-authored-by: Artur Souza <asouza.pro@gmail.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Remove the unnecessary `time.Sleep`s slowing the workflow int test by 20s. Resolves the data race by using an `atomic.Bool` for shared state. Signed-off-by: joshvanl <me@joshvanl.dev> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Updates controller-runtime, remove WriteSVIDToDir PR updates go modules, specifically controller-runtime to v0.16.3 so that the webhook server can be configured to use TLS options. This removes the need for the operator to write the SVID to disk and maintain it in memory. PR removes the WriteSVIDToDir option from security. Operator cache has been updated to use new controller-runtime types. Signed-off-by: joshvanl <me@joshvanl.dev> * Update deprecated funcs Signed-off-by: joshvanl <me@joshvanl.dev> * Replace deprecated function in test/runner Signed-off-by: joshvanl <me@joshvanl.dev> * Fix Kubernetes integration process Signed-off-by: joshvanl <me@joshvanl.dev> * Include int framework operator v2alpha1 API endpoint with subscription v2 Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
* Temporary override to have Redis to handle event metadata. Signed-off-by: Artur Souza <asouza.pro@gmail.com> * E2E test change to reproduce HTTP header conflict in pubsub. Signed-off-by: Artur Souza <asouza.pro@gmail.com> * E2E test for content-length conflict with gRPC subscriber. Signed-off-by: Artur Souza <asouza.pro@gmail.com> * Hotfix to avoid content-length header conflict in HTTP and gRPC. Signed-off-by: Artur Souza <asouza.pro@gmail.com> * Revert "Temporary override to have Redis to handle event metadata." This reverts commit 20b60a0. Signed-off-by: Artur Souza <asouza.pro@gmail.com> --------- Signed-off-by: Artur Souza <asouza.pro@gmail.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: joshvanl <me@joshvanl.dev> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Shivam Kumar <shivamkm07@gmail.com> Co-authored-by: Mukundan Sundararajan <65565396+mukundansundar@users.noreply.github.com> Co-authored-by: Artur Souza <asouza.pro@gmail.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Switch to OTel ParentSampler for correct sampling behavior Signed-off-by: Andrej Kyselica <andrejky@microsoft.com> * fix formatting Signed-off-by: Andrej Kyselica <andrejky@microsoft.com> * fix lint error Signed-off-by: Andrej Kyselica <andrej@kyselica.com> --------- Signed-off-by: Andrej Kyselica <andrejky@microsoft.com> Signed-off-by: Andrej Kyselica <andrej@kyselica.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Co-authored-by: Loong Dai <long.dai@intel.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Samantha Coyle <sam@diagrid.io> Co-authored-by: Loong Dai <long.dai@intel.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: kindknow <iturf@sina.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Subscriptions: Declarative Go Generic Loader Following Components and HTTPEndpoints, creates a generic disk & kubernetes loader for Subscriptions. Removes the adhok loaders from existing runtime pubsub packages. This is required for adding Subscriptions to the hot reloader reconciler and making a more consistent & testable manifest loader package. The disk loader loads both `v1alpha1` and `v2alpha1` Subscriptions, converting `v1alpha1` to `v2alpha1` on successful load. Since the operator returns only `v2alpha1` Subscriptions (Kubernetes API converts `v1alpha1` to `v2alpha1`), the Kubernetes loader only loads `v2alpha1`. `APIVersion() string` func has been added to the generic `meta.Resource` interface type to allow for the generic loader to determine between resource versions, supporting differentiating `v1alpha1` and `v2alpha1` Subscription resource versions. To ensure backwards compatibility of the previous disk Subscription loader, the generic disk loader now tracks the order in which manifests are loaded. This ensures that, even though `v1alpha1` and `v2alpha1` Subscriptions use separate loaders, their file position order is preserved once `v1alpha1` Subscriptions are converted to `v2alpha1`. Subscription backwards compatibility of parsing & ingestion priority is covered by existing extensive integration tests. Notice that _ZERO_ of the comprehensive subscription integration tests have been modified, proving no behaviour change has occurred for loading and actuating Subscriptions. Explanation of integration test changes: - daprd/hotreload/selfhosted/crypto: loader now mandates `apiVersion` on disk manifests which is more correct. Previous behaviour ignoring this field should be considered a bug. Since we use Kubernetes resource API schema, `apiVersion` is (and has been) _always_ required. - framework/process/grpc/operator/server.go: returning non-nil gRPC object for mocked operator Subscription RPC call prevents underlying gRPC library unmarshal nil errors- more correct than previous implementation. Part of [Subscription hot-reloading](dapr#7139). Signed-off-by: joshvanl <me@joshvanl.dev> * Update errS to patherrs to avoid confusion Signed-off-by: joshvanl <me@joshvanl.dev> * Updates sub import to use bare version string Signed-off-by: joshvanl <me@joshvanl.dev> * Remove unneeded code comment Signed-off-by: joshvanl <me@joshvanl.dev> * Change test manifests to have unique names Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Fixes warning “Running http and grpc server on single port. This is not recommended for production.” Signed-off-by: Elena Kolevska <elena@kolevska.com> * Suffixes data dirs with instance id Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds space quota parameter Signed-off-by: Elena Kolevska <elena@kolevska.com> * Sets default quota to 2GB Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds compaction parameters Signed-off-by: Elena Kolevska <elena@kolevska.com> * Updates helm charts Signed-off-by: Elena Kolevska <elena@kolevska.com> * Adds namespace to data dir name. Renames etcdID to just ID. Signed-off-by: Elena Kolevska <elena@kolevska.com> --------- Signed-off-by: Elena Kolevska <elena@kolevska.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Hot Reload: Subscription Adds support for Subscription Hot Reloading. If the Hot Reloading preview feature is enabled, create, update and delete events to declarative Subscriptions will be reflected in the Subscriptions runtime without needing to restart the Dapr runtime. Works in both self-hosted and Kubernetes modes. Note that, because topic routes and not indexed by Subscription resources, all Subscriptions will be cancelled and topic routes re-built and re-subscribed when a Subscription event occurs. A possible improvement would to only cancel all topic route subscriptions which are related to the Subscription pubsub or include an index of the Subscription which a topic is routed for, however this is out of scope of this change. Support for per topic route cancellation will be needed for on-demand bi-directional subscriptions. In-flight messages are not effected by Subscription hot reloading. Branched from dapr#7582 Closes dapr#7139 Signed-off-by: joshvanl <me@joshvanl.dev> * Load all Subscriptions before reloading on boot Signed-off-by: joshvanl <me@joshvanl.dev> * Adds unit tests for subscription client side scope filtering Signed-off-by: joshvanl <me@joshvanl.dev> * Linting Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
* Operator: Component server side scope filtering Today, daprd's will receive Component from the operator, regardless of whether they are scoped for that Component or not. This means that clients do receive components (including its associated secrets) that they are not scoped for. Updates Operator API ComponentUpdate to perform service side Component Scope filtering based on the authenticated client App ID. When a Component is de-scoped, daprd will receive a DELETE for the previous Component manifest. When a Component is scoped-in, daprd will receive an CREATE for the new Component manifest. Updates Operator API ListComponents to perform service side Component Scope filtering based on the authenticated client App ID. Uses updated events batcher which ensures queue items are sent in order. Signed-off-by: joshvanl <me@joshvanl.dev> * Add 2 daprds for operator informer tests Signed-off-by: joshvanl <me@joshvanl.dev> * Fix control plane trust domain Signed-off-by: joshvanl <me@joshvanl.dev> * Update github.com/dapr/kit to master Signed-off-by: joshvanl <me@joshvanl.dev> * go mod tidy Signed-off-by: joshvanl <me@joshvanl.dev> * Fix incorrect pointer manifest compare Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com>
* able to send triggered job back to app via the app channel from daprd sidecar using both grpc and http protocols Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * change sidecar receiving job to debug level to still validate the scheduler stream Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * grpc test Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * wip Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * some cleanup Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * update test framework grpc app to add the OnJobEventFn and update test to use it. grpc appcallback test passes Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * wip http test Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * added http working test. need to make lint Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * update tests with stub for interface func for triggerJob to app now since its in the app channel interface Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * defer release of ch Signed-off-by: Cassandra Coyle <cassie@diagrid.io> --------- Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* go-etcd-cron Signed-off-by: joshvanl <me@joshvanl.dev> * Fix multi-scheduler int test Signed-off-by: joshvanl <me@joshvanl.dev> * Review comments Signed-off-by: joshvanl <me@joshvanl.dev> * Rename schedule app job type to job Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev>
* restore test file diff, keep chart chagnes Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * fix read-only err Signed-off-by: Cassandra Coyle <cassie@diagrid.io> --------- Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Disk Loader: Scope filtering Adds scope filtering to the disk manifest loader. Though this doesn't have any security benefits, it does mean manifests are filtered much sooner in the runtime when running in self-hosted mode and prevents logging/errors downstream in modules like the hot reloading reconciler. Signed-off-by: joshvanl <me@joshvanl.dev> * Update internal disk loader unit test with Options param Signed-off-by: joshvanl <me@joshvanl.dev> * Pass appID to hotreload disk loader for scope filtering Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* first commit Signed-off-by: yaron2 <schneider.yaron@live.com> * add tests Signed-off-by: yaron2 <schneider.yaron@live.com> * linter Signed-off-by: yaron2 <schneider.yaron@live.com> --------- Signed-off-by: yaron2 <schneider.yaron@live.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Pin latest contrib with Go 1.22 Signed-off-by: Bernd Verst <github@bernd.dev> * Fix mysterious linter issue Signed-off-by: Bernd Verst <github@bernd.dev> * Downgrade cosmosdb Signed-off-by: Bernd Verst <github@bernd.dev> * Update go.mod Signed-off-by: Bernd Verst <github@bernd.dev> * Fix CosmosDB for latest API version Signed-off-by: Bernd Verst <github@bernd.dev> * Install gotestsum in Makefile Signed-off-by: Bernd Verst <github@bernd.dev> * Pin Go 1.22.2 Signed-off-by: Bernd Verst <github@bernd.dev> * Fix makefile Signed-off-by: Bernd Verst <github@bernd.dev> * revert makefile changes Signed-off-by: Bernd Verst <github@bernd.dev> * Update all go.mod/Makefile/Dockerfile for `1.22`. Remove `{}` chars from HTTP route fuzz generations. Signed-off-by: joshvanl <me@joshvanl.dev> * Makefile: export `go/bin` to PATH for darwin Exports the `go/bin/darwin_$(arch)` directory to the PATH environment variable when running on Darwin. This ensures that binaries installed by `go install` are available in the Makefile exec path. Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: Bernd Verst <github@bernd.dev> Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: joshvanl <me@joshvanl.dev>
* Refactor SPIFFE from `pkg/security` to `kit` Updates the `pkg/security` package to move the SPIFFE implementation to a new kit package. This new kit package is more modulated and fuller test coverage. This package has been moved so that it can be both imported by dapr & components-contrib, as well as making the package more suitable for further development to support X.509 Component auth. dapr/proposals#51 Also moves in test/utils from dapr to crypto/test for shared usage. Part of dapr/proposals#51 Uses go mod fork of dapr/kit#92 Signed-off-by: joshvanl <me@joshvanl.dev> * Include SVID context with `Init`ing Component Signed-off-by: joshvanl <me@joshvanl.dev> * Adds security to processor options Signed-off-by: joshvanl <me@joshvanl.dev> * Update github.com/dapr/dapr to master Signed-off-by: joshvanl <me@joshvanl.dev> * Update `util` to new `test` package import Signed-off-by: joshvanl <me@joshvanl.dev> * Update go.sum Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev>
* Bidirectional job trigger & ack. Adds job ack from scheduler client for when job is finished processing and can be ticked. Adds mTLS authorization to scheduler API server. Adds integration tests for scheduler Jobs and Actor Reminders. Signed-off-by: joshvanl <me@joshvanl.dev> * Review comments & reconnect scheduler int test Signed-off-by: joshvanl <me@joshvanl.dev> * Update go-etcd-cron Signed-off-by: joshvanl <me@joshvanl.dev> * Linting Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev>
…ler statefulset (#27) * Charts: Adds option to use PVC for Scheduler statefulset Adds optional `dapr_scheduler.cluster.persistentVolumeClaimName` helm chart values option to change the scheduler data dir volume to use the references PersistentVolumeClaim, rather than an empty dir, making ETCD data persistent across pod restarts. Also changes the volume and mount paths so that all schedulers share the same root mount path, but write to a sub directory of the form "/<namespace>/<scheduler-id>". Signed-off-by: joshvanl <me@joshvanl.dev> * Update scheduler volume to use volumeClaimTemplate Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Adds `listen-address` CLI flags for all services servers. Address corresponding `--listen-address` CLI flags for all services servers. This sets the listening address for these TCP servers. This is added to allow users to both bind the address to localhost to prevent access to a particular server on the network, as well as for integration testing as it is more correct to bind to localhost and prevents triggering MacOS firewall popups. Signed-off-by: joshvanl <me@joshvanl.dev> * Report localhost to nameresolver when internal grpc listen address is localhost Signed-off-by: joshvanl <me@joshvanl.dev> * Use localhost host for placement report when internal gRPC address is localhost Signed-off-by: joshvanl <me@joshvanl.dev> * Change default listen-address from `0.0.0.0` to empty string to allow for default ipv6 support and keep backwards compat. Signed-off-by: joshvanl <me@joshvanl.dev> --------- Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com>
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* merge & fix http status code check Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * triggered job e2e test for http app Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * update test iteration nums Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * rm time.sleep -> assert.eventually Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * rm local test changes Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * update test name Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * tweaks Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * grpc e2d works, need to cleanup grpc test Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * rm grpc test and combine into http test. keep both apps tho. need to cleanup local test changes in scheduler_test Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * cleanup local test changes Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * make lint Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * mv things around Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * cleanup Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * thread -> goroutine Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * Update clients.go Signed-off-by: Cassie Coyle <cassie.i.coyle@gmail.com> * rm commented line Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * Apply suggestions from code review Co-authored-by: Josh van Leeuwen <me@joshvanl.dev> Signed-off-by: Cassie Coyle <cassie.i.coyle@gmail.com> * PR review updates Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * review updates. add code todo Signed-off-by: Cassandra Coyle <cassie@diagrid.io> --------- Signed-off-by: Cassandra Coyle <cassie@diagrid.io> Signed-off-by: Cassie Coyle <cassie.i.coyle@gmail.com> Co-authored-by: Josh van Leeuwen <me@joshvanl.dev>
* continuously retry scheduler clients if it fails upon the first try Signed-off-by: Cassandra Coyle <cassie@diagrid.io> * Apply suggestions from code review Co-authored-by: Josh van Leeuwen <me@joshvanl.dev> Signed-off-by: Cassie Coyle <cassie.i.coyle@gmail.com> * fix indentation after UI committing Signed-off-by: Cassandra Coyle <cassie@diagrid.io> --------- Signed-off-by: Cassandra Coyle <cassie@diagrid.io> Signed-off-by: Cassie Coyle <cassie.i.coyle@gmail.com> Co-authored-by: Josh van Leeuwen <me@joshvanl.dev> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* Update README.md Signed-off-by: Martin Oehlert <mo1987@gmx.net> * Update README.md Signed-off-by: Martin Oehlert <mo1987@gmx.net> --------- Signed-off-by: Martin Oehlert <mo1987@gmx.net> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
* api token fix --------- Signed-off-by: Elena Kolevska <elena@kolevska.com> Signed-off-by: Artur Souza <asouza.pro@gmail.com> Signed-off-by: joshvanl <me@joshvanl.dev> Co-authored-by: Artur Souza <asouza.pro@gmail.com> Co-authored-by: Elena Kolevska <elena@kolevska.com> Co-authored-by: Dapr Bot <56698301+dapr-bot@users.noreply.github.com> Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
…service list, make lint Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
cicoyle
force-pushed
the
feat-dist-scheduler
branch
from
May 24, 2024 18:54
2f7edec
to
8bb51b7
Compare
rebasing to fix the DCO in CI caused all the conflicts... working to resolve them rn |
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
Something wonky happened with my rebasing to fix the DCO check. Going to nuke this PR and open a fresh one from my backup branch (thankfully, I made a backup of the branch before going down the worm hole trying to fix DCO) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the relevant code for:
This PR follows this official proposal, however we did implement bidirectional streaming between the Scheduler and Daprd Sidecar (the proposal will be updated to reflect this change).
This is an end to end solution where an app is able to schedule a job to the daprd sidecar and perform basic crud operations with the job. The daprd sidecar sends the job to the Scheduler control plane service, which then stores the job in its embedded etcd. At trigger time, the scheduler will send the job back to the daprd sidecar where the sidecar will send the triggered job along to the app.
This includes work to replace the actor reminder subsystem, by scheduling the actor reminders in the Scheduler control plane service embedded etcd.
Perf numbers will be provided soon.
There were several individuals involved in making this work happen - thank you to all 🚀
Issue reference
1.14 release P0
Here is the issue tracking the work. There are a few remaining items that will be completed before the release date.
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list: