-
Notifications
You must be signed in to change notification settings - Fork 563
feat(taskbroker): add deployment #1831
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
base: develop
Are you sure you want to change the base?
feat(taskbroker): add deployment #1831
Conversation
|
Could you explain why this is needed please? |
|
Taskbroker is a new service that Sentry added in 25.6.0 (as a replacement to Celery), see getsentry/self-hosted#3738. |
|
Wait for getsentry/sentry#96966 because getsentry/self-hosted#3845 |
920cbf1 to
b700b2a
Compare
|
👋 Hi, @TartanLeGrand, |
| @@ -0,0 +1,112 @@ | |||
| apiVersion: apps/v1 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@TartanLeGrand Thanks for taking this initiative,
I will also try to contribute to this PR.
But the way this should be implemented is as follows.
We need statfulset for taskbroker, as it will require disk
the way this file should be is
for each taskbroker
{{- range $name, $config := .Values.taskbroker }}
taskworker deployment with n replicas yaml pointing to this taskbroker(n can be 1-32)
{{-end}}
| @@ -0,0 +1,124 @@ | |||
| apiVersion: apps/v1 | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should ideally be a statefulset because, embedded sqlite might require pvc also.
Take example of symbolicator statefulset
This pull request introduces a new "taskbroker" component to the Sentry Helm chart, including its deployment, configuration, and associated Kubernetes resources. The changes enable task scheduling and execution capabilities by adding a task broker, task scheduler, and task worker. Additionally, it includes updates to support persistence, autoscaling, and environment-specific configurations.
Taskbroker Component Additions:
Deploymentfor the taskbroker, including support for custom annotations, labels, resource requests/limits, persistence, and environment variables (charts/sentry/templates/sentry/taskbroker/deployment-taskbroker.yaml).Servicefor the taskbroker to facilitate communication on port 50051 (charts/sentry/templates/sentry/taskbroker/service-taskbroker.yaml).charts/sentry/templates/sentry/taskbroker/pvc-taskbroker.yaml).charts/sentry/templates/sentry/taskbroker/hpa-taskbroker.yaml).ServiceAccountfor the taskbroker to manage permissions (charts/sentry/templates/sentry/taskbroker/serviceaccount-sentry-taskbroker.yaml).Task Scheduling Enhancements:
Deploymentfor the task scheduler, which runs thetaskworker-schedulercommand to manage task scheduling (charts/sentry/templates/sentry/taskbroker/deployment-taskscheduler.yaml).Deploymentfor task workers to execute tasks, including support for concurrency and RPC communication with the taskbroker (charts/sentry/templates/sentry/taskbroker/deployment-taskworker.yaml).Configuration Updates:
charts/sentry/templates/_helper.tpl). [1] [2]charts/sentry/templates/_helper.tpl).Values Configuration:
taskbrokersection invalues.yamlfor configuring replicas, autoscaling, persistence, resource requests/limits, and environment variables (charts/sentry/values.yaml). [1] [2]These changes collectively enhance the Sentry Helm chart by introducing a robust task management system and providing flexibility for deployment configurations.