Skip to content

Commit 0dd9cd0

Browse files
committed
WIP
1 parent 701a373 commit 0dd9cd0

File tree

12 files changed

+2323
-90
lines changed

12 files changed

+2323
-90
lines changed

Cargo.lock

Lines changed: 394 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.nix

Lines changed: 1544 additions & 85 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ repository = "https://github.com/stackabletech/zookeeper-operator"
1212
[workspace.dependencies]
1313
product-config = { git = "https://github.com/stackabletech/product-config.git", tag = "0.7.0" }
1414
stackable-operator = { git = "https://github.com/stackabletech/operator-rs.git", features = ["telemetry", "versioned"], tag = "stackable-operator-0.93.1" }
15+
stackable-webhook = { git = "https://github.com/stackabletech/operator-rs.git", tag = "stackable-operator-0.93.1" }
1516

1617
anyhow = "1.0"
1718
built = { version = "0.8", features = ["chrono", "git2"] }
@@ -34,6 +35,7 @@ tracing = "0.1"
3435
[patch."https://github.com/stackabletech/operator-rs"]
3536
# stackable-operator = { git = "https://github.com/stackabletech//operator-rs.git", branch = "main" }
3637
stackable-operator = { path = "/home/sbernauer/stackable/operator-rs/main/crates/stackable-operator" }
38+
stackable-webhook = { path = "/home/sbernauer/stackable/operator-rs/main/crates/stackable-webhook" }
3739

3840
[patch.crates-io]
3941
# tokio-zookeeper = { path = "../tokio-zookeeper" }

_test.yaml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
---
2+
apiVersion: zookeeper.stackable.tech/v1alpha1
3+
kind: Person
4+
metadata:
5+
name: sbernauer1
6+
spec:
7+
username: sbernauer1
8+
---
9+
apiVersion: zookeeper.stackable.tech/v1alpha2
10+
kind: Person
11+
metadata:
12+
name: sbernauer2
13+
spec:
14+
username: sbernauer2
15+
firstName: Sebastian
16+
lastName: Bernauer
17+
---
18+
apiVersion: zookeeper.stackable.tech/v1beta1
19+
kind: Person
20+
metadata:
21+
name: sbernauer3
22+
spec:
23+
username: sbernauer3
24+
firstName: Sebastian
25+
lastName: Bernauer
26+
---
27+
apiVersion: zookeeper.stackable.tech/v2
28+
kind: Person
29+
metadata:
30+
name: sbernauer4
31+
spec:
32+
username: sbernauer4
33+
firstName: Sebastian
34+
lastName: Bernauer
35+
gender: Male
36+
---
37+
apiVersion: zookeeper.stackable.tech/v3
38+
kind: Person
39+
metadata:
40+
name: sbernauer5
41+
spec:
42+
username: sbernauer5
43+
firstName: Sebastian
44+
lastName: Bernauer
45+
gender: Male
46+
47+
48+
49+
50+
---
51+
apiVersion: zookeeper.stackable.tech/v1alpha1
52+
kind: Person
53+
metadata:
54+
name: sbernauer40
55+
spec:
56+
username: sbernauer40
57+
---
58+
apiVersion: zookeeper.stackable.tech/v1alpha1
59+
kind: Person
60+
metadata:
61+
name: sbernauer41
62+
spec:
63+
username: sbernauer41
64+
---
65+
apiVersion: zookeeper.stackable.tech/v1alpha1
66+
kind: Person
67+
metadata:
68+
name: sbernauer42
69+
spec:
70+
username: sbernauer42
71+
---
72+
apiVersion: zookeeper.stackable.tech/v1alpha1
73+
kind: Person
74+
metadata:
75+
name: sbernauer43
76+
spec:
77+
username: sbernauer43
78+
---
79+
apiVersion: zookeeper.stackable.tech/v1alpha1
80+
kind: Person
81+
metadata:
82+
name: sbernauer44
83+
spec:
84+
username: sbernauer44

crds.yaml

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,3 +891,152 @@ spec:
891891
storage: true
892892
subresources:
893893
status: {}
894+
---
895+
apiVersion: apiextensions.k8s.io/v1
896+
kind: CustomResourceDefinition
897+
metadata:
898+
name: persons.zookeeper.stackable.tech
899+
spec:
900+
group: zookeeper.stackable.tech
901+
names:
902+
categories: []
903+
kind: Person
904+
plural: persons
905+
shortNames: []
906+
singular: person
907+
scope: Namespaced
908+
versions:
909+
- additionalPrinterColumns: []
910+
name: v3
911+
schema:
912+
openAPIV3Schema:
913+
description: Auto-generated derived type for PersonSpec via `CustomResource`
914+
properties:
915+
spec:
916+
properties:
917+
firstName:
918+
type: string
919+
gender:
920+
type: string
921+
lastName:
922+
type: string
923+
username:
924+
type: string
925+
required:
926+
- firstName
927+
- gender
928+
- lastName
929+
- username
930+
type: object
931+
required:
932+
- spec
933+
title: Person
934+
type: object
935+
served: true
936+
storage: true
937+
subresources: {}
938+
- additionalPrinterColumns: []
939+
name: v2
940+
schema:
941+
openAPIV3Schema:
942+
description: Auto-generated derived type for PersonSpec via `CustomResource`
943+
properties:
944+
spec:
945+
properties:
946+
firstName:
947+
type: string
948+
gender:
949+
enum:
950+
- Unknown
951+
- Male
952+
- Female
953+
type: string
954+
lastName:
955+
type: string
956+
username:
957+
type: string
958+
required:
959+
- firstName
960+
- gender
961+
- lastName
962+
- username
963+
type: object
964+
required:
965+
- spec
966+
title: Person
967+
type: object
968+
served: true
969+
storage: false
970+
subresources: {}
971+
- additionalPrinterColumns: []
972+
name: v1beta1
973+
schema:
974+
openAPIV3Schema:
975+
description: Auto-generated derived type for PersonSpec via `CustomResource`
976+
properties:
977+
spec:
978+
properties:
979+
firstName:
980+
type: string
981+
lastName:
982+
type: string
983+
username:
984+
type: string
985+
required:
986+
- firstName
987+
- lastName
988+
- username
989+
type: object
990+
required:
991+
- spec
992+
title: Person
993+
type: object
994+
served: true
995+
storage: false
996+
subresources: {}
997+
- additionalPrinterColumns: []
998+
name: v1alpha2
999+
schema:
1000+
openAPIV3Schema:
1001+
description: Auto-generated derived type for PersonSpec via `CustomResource`
1002+
properties:
1003+
spec:
1004+
properties:
1005+
firstName:
1006+
type: string
1007+
lastName:
1008+
type: string
1009+
username:
1010+
type: string
1011+
required:
1012+
- firstName
1013+
- lastName
1014+
- username
1015+
type: object
1016+
required:
1017+
- spec
1018+
title: Person
1019+
type: object
1020+
served: true
1021+
storage: false
1022+
subresources: {}
1023+
- additionalPrinterColumns: []
1024+
name: v1alpha1
1025+
schema:
1026+
openAPIV3Schema:
1027+
description: Auto-generated derived type for PersonSpec via `CustomResource`
1028+
properties:
1029+
spec:
1030+
properties:
1031+
username:
1032+
type: string
1033+
required:
1034+
- username
1035+
type: object
1036+
required:
1037+
- spec
1038+
title: Person
1039+
type: object
1040+
served: true
1041+
storage: false
1042+
subresources: {}

deploy/helm/zookeeper-operator/templates/deployment.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ spec:
4747
valueFrom:
4848
fieldRef:
4949
fieldPath: metadata.annotations['internal.stackable.tech/image']
50+
- name: OPERATOR_NAMESPACE
51+
valueFrom:
52+
fieldRef:
53+
fieldPath: metadata.namespace
54+
- name: OPERATOR_SERVICE_NAME
55+
value: {{ include "operator.fullname" . }}
5056
{{- if .Values.kubernetesClusterDomain }}
5157
- name: KUBERNETES_CLUSTER_DOMAIN
5258
value: {{ .Values.kubernetesClusterDomain | quote }}

deploy/helm/zookeeper-operator/templates/roles.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ metadata:
66
labels:
77
{{- include "operator.labels" . | nindent 4 }}
88
rules:
9+
- apiGroups: [apiextensions.k8s.io]
10+
resources: [customresourcedefinitions]
11+
verbs:
12+
- create
13+
- patch
914
- apiGroups:
1015
- ""
1116
resources:
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ include "operator.fullname" . }}
6+
labels:
7+
{{- include "operator.labels" . | nindent 4 }}
8+
spec:
9+
selector:
10+
{{- include "operator.selectorLabels" . | nindent 6 }}
11+
ports:
12+
- name: conversion-webhook
13+
protocol: TCP
14+
port: 8443
15+
targetPort: 8443

rust/operator-binary/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ build = "build.rs"
1212
[dependencies]
1313
product-config.workspace = true
1414
stackable-operator.workspace = true
15+
stackable-webhook.workspace = true
1516

1617
anyhow.workspace = true
1718
clap.workspace = true

rust/operator-binary/src/crd/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ use crate::crd::affinity::get_affinity;
3838

3939
pub mod affinity;
4040
pub mod authentication;
41+
pub mod person;
4142
pub mod security;
4243
pub mod tls;
4344

0 commit comments

Comments
 (0)