Skip to content

Commit 67f6199

Browse files
authored
[Feature] [Analytics] GAE Integration (#1660)
1 parent 7e371cc commit 67f6199

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1959
-20
lines changed

.golangci.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ linters-settings:
7171
alias: mlShared
7272
- pkg: github.com/arangodb/kube-arangodb/pkg/handlers/enterprise/ml/shared/test
7373
alias: mlSharedTests
74+
- pkg: github.com/arangodb/kube-arangodb/pkg/apis/analytics/v1alpha1
75+
alias: analyticsApi
7476
- pkg: github.com/arangodb/kube-arangodb/pkg/apis/ml/v1beta1
7577
alias: mlApi
7678
- pkg: github.com/arangodb/kube-arangodb/pkg/apis/ml/v1alpha1

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
- (Feature) (ML) Enable TLS
1313
- (Feature) (ML) Release V1Beta1 API
1414
- (Maintenance) Update Go to 1.22.3
15+
- (Feature) (Analytics) GAE Integration
1516

1617
## [1.2.40](https://github.com/arangodb/kube-arangodb/tree/1.2.40) (2024-04-10)
1718
- (Feature) Add Core fields to the Scheduler Container Spec

Makefile

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -431,15 +431,23 @@ update-generated:
431431
"client lister informer deepcopy" \
432432
"github.com/arangodb/kube-arangodb/pkg/generated" \
433433
"github.com/arangodb/kube-arangodb/pkg/apis" \
434-
"deployment:v1 replication:v1 storage:v1alpha backup:v1 deployment:v2alpha1 replication:v2alpha1 apps:v1 ml:v1alpha1 ml:v1beta1 scheduler:v1alpha1 scheduler:v1beta1" \
434+
"deployment:v1 deployment:v2alpha1 \
435+
replication:v1 replication:v2alpha1 \
436+
storage:v1alpha \
437+
backup:v1 \
438+
apps:v1 \
439+
ml:v1alpha1 ml:v1beta1 \
440+
scheduler:v1alpha1 scheduler:v1beta1 \
441+
analytics:v1alpha1" \
435442
--go-header-file "./tools/codegen/boilerplate.go.txt" \
436443
$(VERIFYARGS)
437444
GOPATH=$(GOBUILDDIR) $(VENDORDIR)/k8s.io/code-generator/generate-groups.sh \
438445
"deepcopy" \
439446
"github.com/arangodb/kube-arangodb/pkg/generated" \
440447
"github.com/arangodb/kube-arangodb/pkg/apis" \
441-
"shared:v1 scheduler:v1alpha1/container scheduler:v1alpha1/container/resources scheduler:v1alpha1/pod scheduler:v1alpha1/pod/resources\
442-
shared:v1 scheduler:v1beta1/container scheduler:v1beta1/container/resources scheduler:v1beta1/pod scheduler:v1beta1/pod/resources" \
448+
"shared:v1 \
449+
scheduler:v1alpha1/container scheduler:v1alpha1/container/resources scheduler:v1alpha1/pod scheduler:v1alpha1/pod/resources \
450+
scheduler:v1beta1/container scheduler:v1beta1/container/resources scheduler:v1beta1/pod scheduler:v1beta1/pod/resources" \
443451
--go-header-file "./tools/codegen/boilerplate.go.txt" \
444452
$(VERIFYARGS)
445453

@@ -858,7 +866,8 @@ CRDS:=apps-job \
858866
database-clustersynchronization database-deployment database-member database-task \
859867
replication-deploymentreplication \
860868
ml-storage ml-extension ml-job-batch ml-job-cron \
861-
scheduler-profile
869+
scheduler-profile \
870+
analytics-graphanalyticsengine
862871

863872
.PHONY: sync-crds
864873
sync-crds:
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: apiextensions.k8s.io/v1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
name: graphanalyticsengines.analytics.arangodb.com
5+
spec:
6+
group: analytics.arangodb.com
7+
names:
8+
kind: GraphAnalyticsEngine
9+
listKind: GraphAnalyticsEngineList
10+
plural: graphanalyticsengines
11+
singular: graphanalyticsengine
12+
scope: Namespaced
13+
versions:
14+
- name: v1alpha1
15+
schema:
16+
openAPIV3Schema:
17+
type: object
18+
x-kubernetes-preserve-unknown-fields: true
19+
served: true
20+
storage: true
21+
subresources:
22+
status: {}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{{ if .Values.rbac.enabled -}}
2+
{{ if not (eq .Values.operator.scope "namespaced") -}}
3+
{{ if .Values.operator.features.analytics -}}
4+
5+
apiVersion: rbac.authorization.k8s.io/v1
6+
kind: ClusterRoleBinding
7+
metadata:
8+
name: {{ template "kube-arangodb.rbac-cluster" . }}-analytics
9+
labels:
10+
app.kubernetes.io/name: {{ template "kube-arangodb.name" . }}
11+
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }}
12+
app.kubernetes.io/managed-by: {{ .Release.Service }}
13+
app.kubernetes.io/instance: {{ .Release.Name }}
14+
release: {{ .Release.Name }}
15+
roleRef:
16+
apiGroup: rbac.authorization.k8s.io
17+
kind: ClusterRole
18+
name: {{ template "kube-arangodb.rbac-cluster" . }}-analytics
19+
subjects:
20+
- kind: ServiceAccount
21+
name: {{ template "kube-arangodb.operatorName" . }}
22+
namespace: {{ .Release.Namespace }}
23+
24+
{{- end }}
25+
{{- end }}
26+
{{- end }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{{ if .Values.rbac.enabled -}}
2+
{{ if not (eq .Values.operator.scope "namespaced") -}}
3+
{{ if .Values.operator.features.analytics -}}
4+
5+
apiVersion: rbac.authorization.k8s.io/v1
6+
kind: ClusterRole
7+
metadata:
8+
name: {{ template "kube-arangodb.rbac-cluster" . }}-analytics
9+
labels:
10+
app.kubernetes.io/name: {{ template "kube-arangodb.name" . }}
11+
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }}
12+
app.kubernetes.io/managed-by: {{ .Release.Service }}
13+
app.kubernetes.io/instance: {{ .Release.Name }}
14+
release: {{ .Release.Name }}
15+
rules:
16+
- apiGroups: ["apiextensions.k8s.io"]
17+
resources: ["customresourcedefinitions"]
18+
verbs: ["get", "list", "watch"]
19+
20+
{{- end }}
21+
{{- end }}
22+
{{- end }}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{{ if .Values.rbac.enabled -}}
2+
{{ if .Values.operator.features.analytics -}}
3+
4+
apiVersion: rbac.authorization.k8s.io/v1
5+
kind: RoleBinding
6+
metadata:
7+
name: {{ template "kube-arangodb.rbac" . }}-analytics
8+
namespace: {{ .Release.Namespace }}
9+
labels:
10+
app.kubernetes.io/name: {{ template "kube-arangodb.name" . }}
11+
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }}
12+
app.kubernetes.io/managed-by: {{ .Release.Service }}
13+
app.kubernetes.io/instance: {{ .Release.Name }}
14+
release: {{ .Release.Name }}
15+
roleRef:
16+
apiGroup: rbac.authorization.k8s.io
17+
kind: Role
18+
name: {{ template "kube-arangodb.rbac" . }}-analytics
19+
subjects:
20+
- kind: ServiceAccount
21+
name: {{ template "kube-arangodb.operatorName" . }}
22+
namespace: {{ .Release.Namespace }}
23+
24+
{{- end }}
25+
{{- end }}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{{ if .Values.rbac.enabled -}}
2+
{{ if .Values.operator.features.analytics -}}
3+
4+
apiVersion: rbac.authorization.k8s.io/v1
5+
kind: Role
6+
metadata:
7+
name: {{ template "kube-arangodb.rbac" . }}-analytics
8+
namespace: {{ .Release.Namespace }}
9+
labels:
10+
app.kubernetes.io/name: {{ template "kube-arangodb.name" . }}
11+
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }}
12+
app.kubernetes.io/managed-by: {{ .Release.Service }}
13+
app.kubernetes.io/instance: {{ .Release.Name }}
14+
release: {{ .Release.Name }}
15+
rules:
16+
- apiGroups:
17+
- "analytics.arangodb.com"
18+
resources:
19+
- "graphanalyticsengines"
20+
- "graphanalyticsengines/status"
21+
verbs:
22+
- "*"
23+
- apiGroups:
24+
- "database.arangodb.com"
25+
resources:
26+
- "arangodeployments"
27+
verbs:
28+
- "get"
29+
- "list"
30+
- "watch"
31+
- apiGroups: [ "" ]
32+
resources:
33+
- "secrets"
34+
verbs: [ "*" ]
35+
{{- end }}
36+
{{- end }}

chart/kube-arangodb/templates/deployment.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ spec:
114114
{{ if .Values.operator.features.ml }}
115115
- --operator.ml
116116
{{- end }}
117+
{{ if .Values.operator.features.analytics }}
118+
- --operator.analytics
119+
{{- end }}
117120
{{ if .Values.operator.features.k8sToK8sClusterSync }}
118121
- --operator.k2k-cluster-sync
119122
{{- end }}

chart/kube-arangodb/values.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ operator:
3333
apps: false
3434
k8sToK8sClusterSync: false
3535
ml: false
36+
analytics: false
3637
tolerations: []
3738
rbac:
3839
enabled: true

0 commit comments

Comments
 (0)