From fdc4d7da5f3bb23dad79774f51dc87490233d1ee Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Thu, 27 Nov 2025 14:37:31 +0100 Subject: [PATCH 1/9] OAS-11733 [Feature] Add scrape annotations for ArangoD pods --- CHANGELOG.md | 1 + pkg/deployment/resources/pod_creator.go | 1 + pkg/deployment/resources/pod_creator_arangod.go | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) 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/pkg/deployment/resources/pod_creator.go b/pkg/deployment/resources/pod_creator.go index e374c1026..20079afdb 100644 --- a/pkg/deployment/resources/pod_creator.go +++ b/pkg/deployment/resources/pod_creator.go @@ -381,6 +381,7 @@ func (r *Resources) RenderPodForMember(ctx context.Context, acs sutil.ACS, spec switch group.Type() { case api.ServerGroupTypeArangoD: // Prepare arguments + // todo annotations podCreator = &MemberArangoDPod{ Input: input, podName: podName, diff --git a/pkg/deployment/resources/pod_creator_arangod.go b/pkg/deployment/resources/pod_creator_arangod.go index 13b0916a4..c30dea801 100644 --- a/pkg/deployment/resources/pod_creator_arangod.go +++ b/pkg/deployment/resources/pod_creator_arangod.go @@ -52,6 +52,9 @@ const ( ArangoDBOverrideVersionEnv = "ARANGODB_OVERRIDE_VERSION" ArangoDBOverrideEnterpriseEnv = "ARANGODB_OVERRIDE_ENTERPRISE" ArangoDBServerPortEnv = "ARANGODB_SERVER_PORT" + + MetricsScrapeLabel = "platform.arangodb.com/scrape" + MetricsScrapePort = "platform.arangodb.com/port" ) var _ interfaces.PodCreator = &MemberArangoDPod{} @@ -549,7 +552,17 @@ 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) + if result == nil { + result = map[string]string{} + + } + + // Enable scraping via platform by default for ArangoD (requires metrics sidecar to be enabled) + result[MetricsScrapeLabel] = "true" + result[MetricsScrapePort] = fmt.Sprintf("%d", m.GroupSpec.GetExporterPort()) + return result } func (m *MemberArangoDPod) Profiles() (schedulerApi.ProfileTemplates, error) { From 5cd16b87f88452bba1375c8532eb89bfb42e7bd7 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Thu, 27 Nov 2025 20:42:51 +0100 Subject: [PATCH 2/9] OAS-11733 [Feature] Add scrape annotations for ArangoD pods --- pkg/deployment/resources/pod_creator_arangod.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkg/deployment/resources/pod_creator_arangod.go b/pkg/deployment/resources/pod_creator_arangod.go index c30dea801..ea3ebb6a4 100644 --- a/pkg/deployment/resources/pod_creator_arangod.go +++ b/pkg/deployment/resources/pod_creator_arangod.go @@ -554,14 +554,16 @@ func (m *MemberArangoDPod) ApplyPodSpec(p *core.PodSpec) error { func (m *MemberArangoDPod) Annotations() map[string]string { // Merge deployment and group annotations and add hardcoded scrape annotation for ArangoD pods result := collection.MergeAnnotations(m.Deployment.Annotations, m.GroupSpec.Annotations) - if result == nil { - result = map[string]string{} - - } // Enable scraping via platform by default for ArangoD (requires metrics sidecar to be enabled) - result[MetricsScrapeLabel] = "true" - result[MetricsScrapePort] = fmt.Sprintf("%d", m.GroupSpec.GetExporterPort()) + if m.Deployment.Metrics.IsEnabled() { + if result == nil { + result = map[string]string{} + + } + result[MetricsScrapeLabel] = "true" + result[MetricsScrapePort] = fmt.Sprintf("%d", m.GroupSpec.GetExporterPort()) + } return result } From 53036eb05eab4c2125b43821f36536cceadf9181 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Thu, 27 Nov 2025 22:45:20 +0100 Subject: [PATCH 3/9] fix test --- pkg/deployment/deployment_suite_test.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/deployment/deployment_suite_test.go b/pkg/deployment/deployment_suite_test.go index c72339598..f5ba8b42d 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{ + resources.MetricsScrapeLabel: "true", + resources.MetricsScrapePort: strconv.Itoa(shared.ArangoExporterPort), + } + } + groupSpec := testCase.ArangoDeployment.Spec.GetServerGroupSpec(group) testCase.ExpectedPod.Spec.Tolerations = deployment.resources.CreatePodTolerations(group, groupSpec) From 9a0451750961dea1d603b15dfcfa3b94f973df91 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Fri, 28 Nov 2025 15:59:23 +0100 Subject: [PATCH 4/9] Add scrape annotations for operator Pod --- chart/kube-arangodb/templates/deployment.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/chart/kube-arangodb/templates/deployment.yaml b/chart/kube-arangodb/templates/deployment.yaml index 3ecadcaaf..bb0af465b 100644 --- a/chart/kube-arangodb/templates/deployment.yaml +++ b/chart/kube-arangodb/templates/deployment.yaml @@ -45,8 +45,10 @@ 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" +{{- if .Values.operator.annotations }} {{ toYaml .Values.operator.annotations | indent 8 }} {{- end }} spec: From ddcd369a9fcdeeacfd015f379fda8f36d350480d Mon Sep 17 00:00:00 2001 From: ajanikow <12255597+ajanikow@users.noreply.github.com> Date: Sun, 30 Nov 2025 12:21:07 +0000 Subject: [PATCH 5/9] Update Charts --- chart/kube-arangodb-arm64/templates/deployment.yaml | 4 +++- .../kube-arangodb-enterprise-arm64/templates/deployment.yaml | 4 +++- chart/kube-arangodb-enterprise/templates/deployment.yaml | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/chart/kube-arangodb-arm64/templates/deployment.yaml b/chart/kube-arangodb-arm64/templates/deployment.yaml index 3ecadcaaf..bb0af465b 100644 --- a/chart/kube-arangodb-arm64/templates/deployment.yaml +++ b/chart/kube-arangodb-arm64/templates/deployment.yaml @@ -45,8 +45,10 @@ 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" +{{- 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..bb0af465b 100644 --- a/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml +++ b/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml @@ -45,8 +45,10 @@ 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" +{{- 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..bb0af465b 100644 --- a/chart/kube-arangodb-enterprise/templates/deployment.yaml +++ b/chart/kube-arangodb-enterprise/templates/deployment.yaml @@ -45,8 +45,10 @@ 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" +{{- if .Values.operator.annotations }} {{ toYaml .Values.operator.annotations | indent 8 }} {{- end }} spec: From eafc0ee513cd65a3a23d3bde99dba50aac1d5f30 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Sun, 30 Nov 2025 18:12:59 +0100 Subject: [PATCH 6/9] Add scrape annotations for ArangoProfiles --- pkg/deployment/deployment_suite_test.go | 4 ++-- pkg/deployment/resources/pod_creator_arangod.go | 7 ++----- pkg/integrations/sidecar/integration.go | 4 +++- pkg/util/constants/constants.go | 3 +++ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pkg/deployment/deployment_suite_test.go b/pkg/deployment/deployment_suite_test.go index f5ba8b42d..a659725ef 100644 --- a/pkg/deployment/deployment_suite_test.go +++ b/pkg/deployment/deployment_suite_test.go @@ -717,8 +717,8 @@ func (testCase *testCaseStruct) createTestPodData(deployment *Deployment, group metrics := deployment.GetSpec().Metrics if metrics.IsEnabled() { testCase.ExpectedPod.ObjectMeta.Annotations = map[string]string{ - resources.MetricsScrapeLabel: "true", - resources.MetricsScrapePort: strconv.Itoa(shared.ArangoExporterPort), + utilConstants.AnnotationMetricsScrapeLabel: "true", + utilConstants.AnnotationMetricsScrapePort: strconv.Itoa(shared.ArangoExporterPort), } } diff --git a/pkg/deployment/resources/pod_creator_arangod.go b/pkg/deployment/resources/pod_creator_arangod.go index ea3ebb6a4..6b9cceba5 100644 --- a/pkg/deployment/resources/pod_creator_arangod.go +++ b/pkg/deployment/resources/pod_creator_arangod.go @@ -52,9 +52,6 @@ const ( ArangoDBOverrideVersionEnv = "ARANGODB_OVERRIDE_VERSION" ArangoDBOverrideEnterpriseEnv = "ARANGODB_OVERRIDE_ENTERPRISE" ArangoDBServerPortEnv = "ARANGODB_SERVER_PORT" - - MetricsScrapeLabel = "platform.arangodb.com/scrape" - MetricsScrapePort = "platform.arangodb.com/port" ) var _ interfaces.PodCreator = &MemberArangoDPod{} @@ -561,8 +558,8 @@ func (m *MemberArangoDPod) Annotations() map[string]string { result = map[string]string{} } - result[MetricsScrapeLabel] = "true" - result[MetricsScrapePort] = fmt.Sprintf("%d", m.GroupSpec.GetExporterPort()) + result[utilConstants.AnnotationMetricsScrapeLabel] = "true" + result[utilConstants.AnnotationMetricsScrapePort] = fmt.Sprintf("%d", m.GroupSpec.GetExporterPort()) } return result } diff --git a/pkg/integrations/sidecar/integration.go b/pkg/integrations/sidecar/integration.go index f4d0081d6..8eab9291d 100644 --- a/pkg/integrations/sidecar/integration.go +++ b/pkg/integrations/sidecar/integration.go @@ -215,7 +215,9 @@ func NewIntegration(name string, spec api.DeploymentSpec, image *schedulerContai }, Pod: &schedulerPodApi.Pod{ Metadata: &schedulerPodResourcesApi.Metadata{ - Annotations: map[string]string{}, + Annotations: map[string]string{ + utilConstants.AnnotationMetricsScrapeLabel: "true", + }, }, }, } 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" From 3fc9b8220130fbda938421f7b854fa0d7ad783e3 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Tue, 2 Dec 2025 12:54:52 +0100 Subject: [PATCH 7/9] operator pod annotation - tls --- chart/kube-arangodb-arm64/templates/deployment.yaml | 1 + chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml | 1 + chart/kube-arangodb-enterprise/templates/deployment.yaml | 1 + chart/kube-arangodb/templates/deployment.yaml | 1 + 4 files changed, 4 insertions(+) diff --git a/chart/kube-arangodb-arm64/templates/deployment.yaml b/chart/kube-arangodb-arm64/templates/deployment.yaml index bb0af465b..0662b9408 100644 --- a/chart/kube-arangodb-arm64/templates/deployment.yaml +++ b/chart/kube-arangodb-arm64/templates/deployment.yaml @@ -48,6 +48,7 @@ spec: 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 }} diff --git a/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml b/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml index bb0af465b..0662b9408 100644 --- a/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml +++ b/chart/kube-arangodb-enterprise-arm64/templates/deployment.yaml @@ -48,6 +48,7 @@ spec: 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 }} diff --git a/chart/kube-arangodb-enterprise/templates/deployment.yaml b/chart/kube-arangodb-enterprise/templates/deployment.yaml index bb0af465b..0662b9408 100644 --- a/chart/kube-arangodb-enterprise/templates/deployment.yaml +++ b/chart/kube-arangodb-enterprise/templates/deployment.yaml @@ -48,6 +48,7 @@ spec: 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 }} diff --git a/chart/kube-arangodb/templates/deployment.yaml b/chart/kube-arangodb/templates/deployment.yaml index bb0af465b..0662b9408 100644 --- a/chart/kube-arangodb/templates/deployment.yaml +++ b/chart/kube-arangodb/templates/deployment.yaml @@ -48,6 +48,7 @@ spec: 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 }} From 48b2d3d73cbda399c904ca94fe5ad8607a23a799 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Tue, 2 Dec 2025 12:59:59 +0100 Subject: [PATCH 8/9] cleanup --- pkg/deployment/resources/pod_creator.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/deployment/resources/pod_creator.go b/pkg/deployment/resources/pod_creator.go index 20079afdb..e374c1026 100644 --- a/pkg/deployment/resources/pod_creator.go +++ b/pkg/deployment/resources/pod_creator.go @@ -381,7 +381,6 @@ func (r *Resources) RenderPodForMember(ctx context.Context, acs sutil.ACS, spec switch group.Type() { case api.ServerGroupTypeArangoD: // Prepare arguments - // todo annotations podCreator = &MemberArangoDPod{ Input: input, podName: podName, From 3b7a6c5af961feb13f1820ef6c46f998c31cdfb5 Mon Sep 17 00:00:00 2001 From: jwierzbo Date: Wed, 3 Dec 2025 15:55:21 +0100 Subject: [PATCH 9/9] remove annotations from ArangoProfiles --- pkg/integrations/sidecar/integration.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/integrations/sidecar/integration.go b/pkg/integrations/sidecar/integration.go index 8eab9291d..f4d0081d6 100644 --- a/pkg/integrations/sidecar/integration.go +++ b/pkg/integrations/sidecar/integration.go @@ -215,9 +215,7 @@ func NewIntegration(name string, spec api.DeploymentSpec, image *schedulerContai }, Pod: &schedulerPodApi.Pod{ Metadata: &schedulerPodResourcesApi.Metadata{ - Annotations: map[string]string{ - utilConstants.AnnotationMetricsScrapeLabel: "true", - }, + Annotations: map[string]string{}, }, }, }