Skip to content

Commit 04da3b7

Browse files
committed
Modernize code generation
Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
1 parent 2c57498 commit 04da3b7

33 files changed

+458
-1041
lines changed

Makefile

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ GITURL = $(shell git config --get remote.origin.url)
1919
GITSTATUS = $(shell git status --porcelain || echo "no changes")
2020
SOURCES = cmd/main.go
2121
VERSION ?= $(shell git describe --tags --always --dirty)
22+
CRD_SOURCES = $(shell find pkg/apis/zalando.org pkg/apis/acid.zalan.do -name '*.go' -not -name '*.deepcopy.go')
23+
GENERATED = pkg/apis/zalando.org/v1/zz_generated.deepcopy.go pkg/apis/acid.zalan.do/v1/zz_generated.deepcopy.go
2224
DIRS := cmd pkg
2325
PKG := `go list ./... | grep -v /vendor/`
2426

@@ -50,15 +52,20 @@ default: local
5052
clean:
5153
rm -rf build
5254

53-
local: ${SOURCES}
55+
verify:
5456
hack/verify-codegen.sh
55-
CGO_ENABLED=${CGO_ENABLED} go build -o build/${BINARY} $(LOCAL_BUILD_FLAGS) -ldflags "$(LDFLAGS)" $^
5657

57-
linux: ${SOURCES}
58-
GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/linux/${BINARY} ${BUILD_FLAGS} -ldflags "$(LDFLAGS)" $^
58+
$(GENERATED): go.mod $(CRD_SOURCES)
59+
hack/update-codegen.sh
60+
61+
local: ${SOURCES} $(GENERATED)
62+
CGO_ENABLED=${CGO_ENABLED} go build -o build/${BINARY} $(LOCAL_BUILD_FLAGS) -ldflags "$(LDFLAGS)" $(SOURCES)
5963

60-
macos: ${SOURCES}
61-
GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/macos/${BINARY} ${BUILD_FLAGS} -ldflags "$(LDFLAGS)" $^
64+
linux: ${SOURCES} $(GENERATED)
65+
GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/linux/${BINARY} ${BUILD_FLAGS} -ldflags "$(LDFLAGS)" $(SOURCES)
66+
67+
macos: ${SOURCES} $(GENERATED)
68+
GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/macos/${BINARY} ${BUILD_FLAGS} -ldflags "$(LDFLAGS)" $(SOURCES)
6269

6370
docker: ${DOCKERDIR}/${DOCKERFILE}
6471
echo `(env)`
@@ -77,27 +84,17 @@ push:
7784
mocks:
7885
GO111MODULE=on go generate ./...
7986

80-
tools:
81-
GO111MODULE=on go get k8s.io/client-go@kubernetes-1.32.9
82-
GO111MODULE=on go install github.com/golang/mock/mockgen@v1.6.0
83-
GO111MODULE=on go mod tidy
84-
8587
fmt:
8688
@gofmt -l -w -s $(DIRS)
8789

8890
vet:
8991
@go vet $(PKG)
9092
@staticcheck $(PKG)
9193

92-
deps: tools
93-
GO111MODULE=on go mod vendor
94-
95-
test:
96-
hack/verify-codegen.sh
94+
test: $(GENERATED)
9795
GO111MODULE=on go test ./...
9896

99-
codegen:
100-
hack/update-codegen.sh
97+
codegen: $(GENERATED)
10198

10299
e2e: docker # build operator image to be tested
103100
cd e2e; make e2etest

go.mod

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@ require (
1515
golang.org/x/crypto v0.43.0
1616
gopkg.in/yaml.v2 v2.4.0
1717
k8s.io/api v0.32.9
18-
k8s.io/apiextensions-apiserver v0.25.9
18+
k8s.io/apiextensions-apiserver v0.32.9
1919
k8s.io/apimachinery v0.32.9
2020
k8s.io/client-go v0.32.9
21-
k8s.io/code-generator v0.25.9
2221
)
2322

2423
require (
@@ -63,8 +62,8 @@ require (
6362
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
6463
gopkg.in/inf.v0 v0.9.1 // indirect
6564
gopkg.in/yaml.v3 v3.0.1 // indirect
66-
k8s.io/gengo v0.0.0-20220902162205-c0856e24416d // indirect
67-
k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7 // indirect
65+
k8s.io/code-generator v0.32.9 // indirect
66+
k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 // indirect
6867
k8s.io/klog/v2 v2.130.1 // indirect
6968
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
7069
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
@@ -73,3 +72,12 @@ require (
7372
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
7473
sigs.k8s.io/yaml v1.4.0 // indirect
7574
)
75+
76+
tool (
77+
github.com/golang/mock/mockgen
78+
k8s.io/code-generator
79+
k8s.io/code-generator/cmd/client-gen
80+
k8s.io/code-generator/cmd/deepcopy-gen
81+
k8s.io/code-generator/cmd/informer-gen
82+
k8s.io/code-generator/cmd/lister-gen
83+
)

go.sum

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxER
1313
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
1414
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
1515
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
16-
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
1716
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
1817
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
1918
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
@@ -34,12 +33,10 @@ github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek
3433
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
3534
github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw=
3635
github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw=
37-
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
3836
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
3937
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
4038
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
4139
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
42-
github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
4340
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
4441
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
4542
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
@@ -58,7 +55,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr
5855
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
5956
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
6057
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
61-
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
6258
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
6359
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
6460
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -163,7 +159,6 @@ golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
163159
golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
164160
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
165161
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
166-
golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
167162
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
168163
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
169164
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
@@ -180,7 +175,6 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T
180175
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
181176
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
182177
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
183-
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
184178
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
185179
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
186180
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
@@ -196,19 +190,16 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
196190
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
197191
k8s.io/api v0.32.9 h1:q/59kk8lnecgG0grJqzrmXC1Jcl2hPWp9ltz0FQuoLI=
198192
k8s.io/api v0.32.9/go.mod h1:jIfT3rwW4EU1IXZm9qjzSk/2j91k4CJL5vUULrxqp3Y=
199-
k8s.io/apiextensions-apiserver v0.25.9 h1:Pycd6lm2auABp9wKQHCFSEPG+NPdFSTJXPST6NJFzB8=
200-
k8s.io/apiextensions-apiserver v0.25.9/go.mod h1:ijGxmSG1GLOEaWhTuaEr0M7KUeia3mWCZa6FFQqpt1M=
193+
k8s.io/apiextensions-apiserver v0.32.9 h1:tpT1dUgWqEsTyrdoGckyw8OBASW1JfU08tHGaYBzFHY=
194+
k8s.io/apiextensions-apiserver v0.32.9/go.mod h1:FoCi4zCLK67LNCCssFa2Wr9q4Xbvjx7MW4tdze5tpoA=
201195
k8s.io/apimachinery v0.32.9 h1:fXk8ktfsxrdThaEOAQFgkhCK7iyoyvS8nbYJ83o/SSs=
202196
k8s.io/apimachinery v0.32.9/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
203197
k8s.io/client-go v0.32.9 h1:ZMyIQ1TEpTDAQni3L2gH1NZzyOA/gHfNcAazzCxMJ0c=
204198
k8s.io/client-go v0.32.9/go.mod h1:2OT8aFSYvUjKGadaeT+AVbhkXQSpMAkiSb88Kz2WggI=
205-
k8s.io/code-generator v0.25.9 h1:lgyAV9AIRYNxZxgLRXqsCAtqJLHvakot41CjEqD5W0w=
206-
k8s.io/code-generator v0.25.9/go.mod h1:DHfpdhSUrwqF0f4oLqCtF8gYbqlndNetjBEz45nWzJI=
207-
k8s.io/gengo v0.0.0-20220902162205-c0856e24416d h1:U9tB195lKdzwqicbJvyJeOXV7Klv+wNAWENRnXEGi08=
208-
k8s.io/gengo v0.0.0-20220902162205-c0856e24416d/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
209-
k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7 h1:cErOOTkQ3JW19o4lo91fFurouhP8NcoBvb7CkvhZZpk=
210-
k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
211-
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
199+
k8s.io/code-generator v0.32.9 h1:F9Gti/8I+nVNnQw02J36/YlSD5JMg4qDJ7sfRqpUICU=
200+
k8s.io/code-generator v0.32.9/go.mod h1:fLYBG9g52EJulRebmomL0vCU0PQeMr7mnscfZtAAGV4=
201+
k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9 h1:si3PfKm8dDYxgfbeA6orqrtLkvvIeH8UqffFJDl0bz4=
202+
k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU=
212203
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
213204
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
214205
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4=
@@ -222,6 +213,5 @@ sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
222213
sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
223214
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc=
224215
sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
225-
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
226216
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
227217
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=

hack/tools.go

Lines changed: 0 additions & 19 deletions
This file was deleted.

hack/update-codegen.sh

Lines changed: 58 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,67 @@
1-
#!/usr/bin/env bash
1+
#!/bin/bash
2+
3+
# Copyright 2017 The Kubernetes Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
216

317
set -o errexit
418
set -o nounset
519
set -o pipefail
620

7-
GENERATED_PACKAGE_ROOT="github.com"
8-
OPERATOR_PACKAGE_ROOT="${GENERATED_PACKAGE_ROOT}/zalando/postgres-operator"
9-
SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/..
10-
TARGET_CODE_DIR=${1-${SCRIPT_ROOT}/pkg}
11-
CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo "${GOPATH}"/src/k8s.io/code-generator)}
21+
SRC="github.com"
22+
GOPKG="$SRC/zalando/postgres-operator"
23+
CUSTOM_RESOURCE_NAME_ZAL="zalando.org"
24+
CUSTOM_RESOURCE_NAME_ACID="acid.zalan.do"
25+
CUSTOM_RESOURCE_VERSION="v1"
26+
27+
SCRIPT_ROOT="$(dirname "${BASH_SOURCE[0]}")/.."
28+
29+
OUTPUT_DIR="pkg/generated"
30+
OUTPUT_PKG="${GOPKG}/${OUTPUT_DIR}"
31+
APIS_PKG="${GOPKG}/pkg/apis"
32+
GROUPS_WITH_VERSIONS="${CUSTOM_RESOURCE_NAME_ZAL}:${CUSTOM_RESOURCE_VERSION},${CUSTOM_RESOURCE_NAME_ACID}:${CUSTOM_RESOURCE_VERSION}"
1233

13-
cleanup() {
14-
rm -rf "${GENERATED_PACKAGE_ROOT}"
15-
}
16-
trap "cleanup" EXIT SIGINT
34+
echo "Generating deepcopy funcs"
35+
go tool deepcopy-gen \
36+
--output-file zz_generated.deepcopy.go \
37+
--bounding-dirs "${APIS_PKG}" \
38+
--go-header-file "${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt" \
39+
"${APIS_PKG}/${CUSTOM_RESOURCE_NAME_ZAL}/${CUSTOM_RESOURCE_VERSION}" \
40+
"${APIS_PKG}/${CUSTOM_RESOURCE_NAME_ACID}/${CUSTOM_RESOURCE_VERSION}"
1741

18-
bash "${CODEGEN_PKG}/generate-groups.sh" client,deepcopy,informer,lister \
19-
"${OPERATOR_PACKAGE_ROOT}/pkg/generated" "${OPERATOR_PACKAGE_ROOT}/pkg/apis" \
20-
"acid.zalan.do:v1 zalando.org:v1" \
21-
--go-header-file "${SCRIPT_ROOT}"/hack/custom-boilerplate.go.txt \
22-
-o ./
42+
echo "Generating clientset for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset}"
43+
go tool client-gen \
44+
--clientset-name versioned \
45+
--input-base "${APIS_PKG}" \
46+
--input "${CUSTOM_RESOURCE_NAME_ZAL}/${CUSTOM_RESOURCE_VERSION},${CUSTOM_RESOURCE_NAME_ACID}/${CUSTOM_RESOURCE_VERSION}" \
47+
--output-pkg "${OUTPUT_PKG}/clientset" \
48+
--go-header-file "${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt" \
49+
--output-dir "${OUTPUT_DIR}/clientset"
2350

24-
cp -r "${OPERATOR_PACKAGE_ROOT}"/pkg/* "${TARGET_CODE_DIR}"
51+
echo "Generating listers for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/listers"
52+
go tool lister-gen \
53+
--output-pkg "${OUTPUT_PKG}/listers" \
54+
--go-header-file "${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt" \
55+
--output-dir "${OUTPUT_DIR}/listers" \
56+
"${APIS_PKG}/${CUSTOM_RESOURCE_NAME_ZAL}/${CUSTOM_RESOURCE_VERSION}" \
57+
"${APIS_PKG}/${CUSTOM_RESOURCE_NAME_ACID}/${CUSTOM_RESOURCE_VERSION}"
2558

26-
cleanup
59+
echo "Generating informers for ${GROUPS_WITH_VERSIONS} at ${OUTPUT_PKG}/informers"
60+
go tool informer-gen \
61+
--versioned-clientset-package "${OUTPUT_PKG}/${CLIENTSET_PKG_NAME:-clientset}/${CLIENTSET_NAME_VERSIONED:-versioned}" \
62+
--listers-package "${OUTPUT_PKG}/listers" \
63+
--output-pkg "${OUTPUT_PKG}/informers" \
64+
--go-header-file "${SCRIPT_ROOT}/hack/custom-boilerplate.go.txt" \
65+
--output-dir "${OUTPUT_DIR}/informers" \
66+
"${APIS_PKG}/${CUSTOM_RESOURCE_NAME_ZAL}/${CUSTOM_RESOURCE_VERSION}" \
67+
"${APIS_PKG}/${CUSTOM_RESOURCE_NAME_ACID}/${CUSTOM_RESOURCE_VERSION}"

pkg/apis/zalando.org/v1/fabriceventstream.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ import (
1111
// FabricEventStream defines FabricEventStream Custom Resource Definition Object.
1212
type FabricEventStream struct {
1313
metav1.TypeMeta `json:",inline"`
14-
metav1.ObjectMeta `json:"metadata,omitempty"`
14+
metav1.ObjectMeta `json:"metadata"`
1515

1616
Spec FabricEventStreamSpec `json:"spec"`
1717
}
1818

1919
// FabricEventStreamSpec defines the specification for the FabricEventStream TPR.
20+
// +k8s:deepcopy-gen=true
2021
type FabricEventStreamSpec struct {
2122
ApplicationId string `json:"applicationId"`
2223
EventStreams []EventStream `json:"eventStreams"`
@@ -25,6 +26,7 @@ type FabricEventStreamSpec struct {
2526
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
2627

2728
// FabricEventStreamList defines a list of FabricEventStreams .
29+
// +k8s:deepcopy-gen=true
2830
type FabricEventStreamList struct {
2931
metav1.TypeMeta `json:",inline"`
3032
metav1.ListMeta `json:"metadata"`
@@ -33,6 +35,7 @@ type FabricEventStreamList struct {
3335
}
3436

3537
// EventStream defines the source, flow and sink of the event stream
38+
// +k8s:deepcopy-gen=true
3639
type EventStream struct {
3740
EventStreamFlow EventStreamFlow `json:"flow"`
3841
EventStreamSink EventStreamSink `json:"sink"`
@@ -41,25 +44,29 @@ type EventStream struct {
4144
}
4245

4346
// EventStreamFlow defines the flow characteristics of the event stream
47+
// +k8s:deepcopy-gen=true
4448
type EventStreamFlow struct {
4549
Type string `json:"type"`
4650
PayloadColumn *string `json:"payloadColumn,omitempty"`
4751
}
4852

4953
// EventStreamSink defines the target of the event stream
54+
// +k8s:deepcopy-gen=true
5055
type EventStreamSink struct {
5156
Type string `json:"type"`
5257
EventType string `json:"eventType,omitempty"`
5358
MaxBatchSize *uint32 `json:"maxBatchSize,omitempty"`
5459
}
5560

5661
// EventStreamRecovery defines the target of dead letter queue
62+
// +k8s:deepcopy-gen=true
5763
type EventStreamRecovery struct {
5864
Type string `json:"type"`
5965
Sink *EventStreamSink `json:"sink"`
6066
}
6167

6268
// EventStreamSource defines the source of the event stream and connection for FES operator
69+
// +k8s:deepcopy-gen=true
6370
type EventStreamSource struct {
6471
Type string `json:"type"`
6572
Schema string `json:"schema,omitempty" defaults:"public"`
@@ -69,12 +76,14 @@ type EventStreamSource struct {
6976
}
7077

7178
// EventStreamTable defines the name and ID column to be used for streaming
79+
// +k8s:deepcopy-gen=true
7280
type EventStreamTable struct {
7381
Name string `json:"name"`
7482
IDColumn *string `json:"idColumn,omitempty"`
7583
}
7684

7785
// Connection to be used for allowing the FES operator to connect to a database
86+
// +k8s:deepcopy-gen=true
7887
type Connection struct {
7988
Url string `json:"jdbcUrl"`
8089
SlotName string `json:"slotName"`
@@ -84,6 +93,7 @@ type Connection struct {
8493
}
8594

8695
// DBAuth specifies the credentials to be used for connecting with the database
96+
// +k8s:deepcopy-gen=true
8797
type DBAuth struct {
8898
Type string `json:"type"`
8999
Name string `json:"name,omitempty"`

0 commit comments

Comments
 (0)