-
Notifications
You must be signed in to change notification settings - Fork 9.4k
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
[bitnami/grafana-tempo] support new deployment mode: scaling-monolithic #31028
base: main
Are you sure you want to change the base?
Conversation
51d6560
to
d8fc985
Compare
Thank you for this significant contribution, @rim99! The PR is currently in draft status. Please inform us when it's ready for testing and review. Thanks once more! |
Hi @jotamartos @migruiz4 , I've tested my changes with minikube locally. New statefulset works fine as a cluster. Regarding the VIB test, how to achieve 2 different sets of env for testing? Since it should test both cases:
|
This Pull Request has been automatically marked as "stale" because it has not had recent activity (for 15 days). It will be closed if no further activity occurs. Thank you for your contribution. |
Hello, just a reminder that this PR is ready for review |
Hi @rim99, Thanks for your contribution and sorry for the delay in getting back to you. We are going to start reviewing the changes and will provide feedback as soon as possible. |
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.
Please take a look at my suggestions
kubectl port-forward svc/{{ template "grafana-tempo.scaling-monolithic.fullname" . }} {{ .Values.scalingMonolithic.service.ports.http }}:{{ .Values.scalingMonolithic.service.ports.http }} & | ||
{{- end }} | ||
{{- end }} | ||
|
||
{{- end }} | ||
|
||
{{- include "grafana-tempo.checkRollingTags" . }} | ||
{{- include "grafana-tempo.validateValues" . }} |
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.
I'd include a validation to ensure tempo.deploymentMode is set to the expected values.
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.
done
{{- if eq .Values.tempo.deploymentMode "microservices" }} | ||
{{- if .Values.compactor.enabled }} |
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.
I'd use a single line for this
{{- if eq .Values.tempo.deploymentMode "microservices" }} | |
{{- if .Values.compactor.enabled }} | |
{{- if and (eq .Values.tempo.deploymentMode "microservices") .Values.compactor.enabled }} |
Same for the rest of files unless there are multiple objects deployed
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.
done
kind: Service | ||
metadata: | ||
name: {{ template "grafana-tempo.scaling-monolithic.fullname" . }}-headless | ||
namespace: {{ .Release.Namespace | quote }} |
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 be updated
namespace: {{ .Release.Namespace | quote }} | |
namespace: {{ include "common.names.namespace" . | quote }} |
Can you update the other templates too?
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.
done
port: {{ .Values.scalingMonolithic.service.ports.grpc }} | ||
targetPort: grpc | ||
protocol: TCP | ||
## From here we use non-configurable, standard ports |
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.
I'm not sure about having all these ports here. As far as I understand, the headless service should only have the Query Frontend's service ports as we currently have in the templates/query-frontend/headless-service.yaml
file. Are the rest of ports needed?
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.
That was to keep align with the ClusterIP service, so extraPorts
can affect both the ClusterIP service and the headless service.
I changed this, to keep minimal required ports. And added new variable in values.yaml
, to allow to set extra ports for headless service specifically
Signed-off-by: Zhang Xin <[email protected]>
Signed-off-by: Bitnami Containers <[email protected]>
Signed-off-by: Zhang Xin <[email protected]>
Signed-off-by: Zhang Xin <[email protected]>
Signed-off-by: Zhang Xin <[email protected]>
Signed-off-by: Zhang Xin <[email protected]>
326ce34
to
3523936
Compare
Signed-off-by: Zhang Xin <[email protected]>
31e46cd
to
0494f29
Compare
Signed-off-by: Bitnami Containers <[email protected]>
Signed-off-by: Bitnami Containers <[email protected]>
Signed-off-by: Carlos Rodríguez Hernández <[email protected]>
Signed-off-by: Bitnami Containers <[email protected]>
Description of the change
This change provides a new way of deployment:
scaling-monolithic
.If toggle
.Values.tempo.deploymentMode
, which is "microservices" by default, is set as "scalingMonolithic", single statefulset will be created. Each pod conatins all functions of components: distributor, ingester, query-frontend, querier, metrics-generator and compactor.Benefits
It helps to maintain a reasonable size of cluster handling small to medium volumes of incoming traces.
Possible drawbacks
Applicable issues
Additional information
Checklist
Chart.yaml
according to semver. This is not necessary when the changes only affect README.md files.README.md
using readme-generator-for-helm