diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a7a9207f..fdc197988 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - (Feature) (Platform) Dump CLI switch to Services - (Feature) (Platform) Fix ImagePullSecrets Merge - (Feature) (Platform) Update Failed Releases +- (Feature) Add scrape annotations for ArangoD pods ## [1.3.2](https://github.com/arangodb/kube-arangodb/tree/1.3.2) (2025-11-20) - (Bugfix) (Platform) Increase memory limit for Inventory diff --git a/chart/kube-arangodb-arm64/templates/deployment.yaml b/chart/kube-arangodb-arm64/templates/deployment.yaml index 3ecadcaaf..0662b9408 100644 --- a/chart/kube-arangodb-arm64/templates/deployment.yaml +++ b/chart/kube-arangodb-arm64/templates/deployment.yaml @@ -45,8 +45,11 @@ spec: app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/instance: {{ .Release.Name }} release: {{ .Release.Name }} -{{- if .Values.operator.annotations }} annotations: + platform.arangodb.com/port: "8528" + platform.arangodb.com/scrape: "true" + platform.arangodb.com/scheme: "https" +{{- if .Values.operator.annotations }} {{ toYaml .Values.operator.annotations | indent 8 }} {{- end }} spec: diff --git a/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml b/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml index 3ecadcaaf..0662b9408 100644 --- a/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml +++ b/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml @@ -45,8 +45,11 @@ spec: app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/instance: {{ .Release.Name }} release: {{ .Release.Name }} -{{- if .Values.operator.annotations }} annotations: + platform.arangodb.com/port: "8528" + platform.arangodb.com/scrape: "true" + platform.arangodb.com/scheme: "https" +{{- if .Values.operator.annotations }} {{ toYaml .Values.operator.annotations | indent 8 }} {{- end }} spec: diff --git a/chart/kube-arangodb-enterprise/templates/deployment.yaml b/chart/kube-arangodb-enterprise/templates/deployment.yaml index 3ecadcaaf..0662b9408 100644 --- a/chart/kube-arangodb-enterprise/templates/deployment.yaml +++ b/chart/kube-arangodb-enterprise/templates/deployment.yaml @@ -45,8 +45,11 @@ spec: app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/instance: {{ .Release.Name }} release: {{ .Release.Name }} -{{- if .Values.operator.annotations }} annotations: + platform.arangodb.com/port: "8528" + platform.arangodb.com/scrape: "true" + platform.arangodb.com/scheme: "https" +{{- if .Values.operator.annotations }} {{ toYaml .Values.operator.annotations | indent 8 }} {{- end }} spec: diff --git a/chart/kube-arangodb/templates/deployment.yaml b/chart/kube-arangodb/templates/deployment.yaml index 3ecadcaaf..0662b9408 100644 --- a/chart/kube-arangodb/templates/deployment.yaml +++ b/chart/kube-arangodb/templates/deployment.yaml @@ -45,8 +45,11 @@ spec: app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/instance: {{ .Release.Name }} release: {{ .Release.Name }} -{{- if .Values.operator.annotations }} annotations: + platform.arangodb.com/port: "8528" + platform.arangodb.com/scrape: "true" + platform.arangodb.com/scheme: "https" +{{- if .Values.operator.annotations }} {{ toYaml .Values.operator.annotations | indent 8 }} {{- end }} spec: diff --git a/pkg/deployment/deployment_suite_test.go b/pkg/deployment/deployment_suite_test.go index c72339598..a659725ef 100644 --- a/pkg/deployment/deployment_suite_test.go +++ b/pkg/deployment/deployment_suite_test.go @@ -714,6 +714,14 @@ func (testCase *testCaseStruct) createTestPodData(deployment *Deployment, group Finalizers: finalizers(group), } + metrics := deployment.GetSpec().Metrics + if metrics.IsEnabled() { + testCase.ExpectedPod.ObjectMeta.Annotations = map[string]string{ + utilConstants.AnnotationMetricsScrapeLabel: "true", + utilConstants.AnnotationMetricsScrapePort: strconv.Itoa(shared.ArangoExporterPort), + } + } + groupSpec := testCase.ArangoDeployment.Spec.GetServerGroupSpec(group) testCase.ExpectedPod.Spec.Tolerations = deployment.resources.CreatePodTolerations(group, groupSpec) diff --git a/pkg/deployment/resources/pod_creator_arangod.go b/pkg/deployment/resources/pod_creator_arangod.go index 13b0916a4..6b9cceba5 100644 --- a/pkg/deployment/resources/pod_creator_arangod.go +++ b/pkg/deployment/resources/pod_creator_arangod.go @@ -549,7 +549,19 @@ func (m *MemberArangoDPod) ApplyPodSpec(p *core.PodSpec) error { } func (m *MemberArangoDPod) Annotations() map[string]string { - return collection.MergeAnnotations(m.Deployment.Annotations, m.GroupSpec.Annotations) + // Merge deployment and group annotations and add hardcoded scrape annotation for ArangoD pods + result := collection.MergeAnnotations(m.Deployment.Annotations, m.GroupSpec.Annotations) + + // Enable scraping via platform by default for ArangoD (requires metrics sidecar to be enabled) + if m.Deployment.Metrics.IsEnabled() { + if result == nil { + result = map[string]string{} + + } + result[utilConstants.AnnotationMetricsScrapeLabel] = "true" + result[utilConstants.AnnotationMetricsScrapePort] = fmt.Sprintf("%d", m.GroupSpec.GetExporterPort()) + } + return result } func (m *MemberArangoDPod) Profiles() (schedulerApi.ProfileTemplates, error) { diff --git a/pkg/util/constants/constants.go b/pkg/util/constants/constants.go index ae30f7295..3dc9f4870 100644 --- a/pkg/util/constants/constants.go +++ b/pkg/util/constants/constants.go @@ -82,6 +82,9 @@ const ( AnnotationEnforceAntiAffinity = "database.arangodb.com/enforce-anti-affinity" // Key of annotation added to PVC. Value is a boolean "true" or "false" + AnnotationMetricsScrapeLabel = "platform.arangodb.com/scrape" + AnnotationMetricsScrapePort = "platform.arangodb.com/port" + BackupLabelRole = "backup/role" MLLabelRole = "ml/role" AnalyticsLabelRole = "analytics/role"