@@ -12,13 +12,17 @@ LOCAL_BUILD_FLAGS ?= $(BUILD_FLAGS)
1212LDFLAGS ?= -X=main.version=$(VERSION )
1313DOCKERDIR = docker
1414
15- IMAGE ?= registry.opensource.zalan.do/acid/$(BINARY )
15+ BASE_IMAGE ?= alpine:latest
16+ IMAGE ?= ghcr.io/zalando/$(BINARY )
1617TAG ?= $(VERSION )
1718GITHEAD = $(shell git rev-parse --short HEAD)
1819GITURL = $(shell git config --get remote.origin.url)
1920GITSTATUS = $(shell git status --porcelain || echo "no changes")
2021SOURCES = cmd/main.go
2122VERSION ?= $(shell git describe --tags --always --dirty)
23+ CRD_SOURCES = $(shell find pkg/apis/zalando.org pkg/apis/acid.zalan.do -name '* .go' -not -name '* .deepcopy.go')
24+ GENERATED_CRDS = manifests/postgresteam.crd.yaml manifests/postgresql.crd.yaml pkg/apis/acid.zalan.do/v1/postgresql.crd.yaml
25+ GENERATED = pkg/apis/zalando.org/v1/zz_generated.deepcopy.go pkg/apis/acid.zalan.do/v1/zz_generated.deepcopy.go
2226DIRS := cmd pkg
2327PKG := ` go list ./... | grep -v /vendor/ `
2428
@@ -42,62 +46,72 @@ ifndef GOPATH
4246 GOPATH := $(HOME)/go
4347endif
4448
45- PATH := $(GOPATH ) /bin:$(PATH )
46- SHELL := env PATH=$(PATH ) $(SHELL )
49+ PATH := $(GOPATH ) /bin:$(PATH )
50+ SHELL := env PATH="$(PATH ) " $(SHELL )
51+ IMAGE_TAG := $(IMAGE ) :$(TAG )$(CDP_TAG )$(DEBUG_FRESH )$(DEBUG_POSTFIX )
4752
4853default : local
4954
5055clean :
5156 rm -rf build
57+ rm $(GENERATED )
58+ rm $(GENERATED_CRDS )
5259
53- local : ${SOURCES}
60+ verify :
5461 hack/verify-codegen.sh
55- CGO_ENABLED=${CGO_ENABLED} go build -o build/${BINARY} $(LOCAL_BUILD_FLAGS ) -ldflags " $( LDFLAGS) " $^
5662
57- linux : ${SOURCES}
58- GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/linux/${BINARY} ${BUILD_FLAGS} -ldflags " $( LDFLAGS) " $^
63+ $(GENERATED ) : go.mod $(CRD_SOURCES )
64+ hack/update-codegen.sh
65+
66+ $(GENERATED_CRDS ) : $(GENERATED )
67+ go tool controller-gen crd:crdVersions=v1,allowDangerousTypes=true paths=./pkg/apis/acid.zalan.do/... output:crd:dir=manifests
68+ # only generate postgresteam.crd.yaml and postgresql.crd.yaml for now
69+ @rm manifests/acid.zalan.do_operatorconfigurations.yaml
70+ @mv manifests/acid.zalan.do_postgresqls.yaml manifests/postgresql.crd.yaml
71+ @# hack to use lowercase kind and listKind
72+ @sed -i -e ' s/kind: Postgresql/kind: postgresql/' manifests/postgresql.crd.yaml
73+ @sed -i -e ' s/listKind: PostgresqlList/listKind: postgresqlList/' manifests/postgresql.crd.yaml
74+ @hack/adjust_postgresql_crd.sh
75+ @mv manifests/acid.zalan.do_postgresteams.yaml manifests/postgresteam.crd.yaml
76+ @cp manifests/postgresql.crd.yaml pkg/apis/acid.zalan.do/v1/postgresql.crd.yaml
77+
78+ local : ${SOURCES} $(GENERATED_CRDS )
79+ CGO_ENABLED=${CGO_ENABLED} go build -o build/${BINARY} $(LOCAL_BUILD_FLAGS ) -ldflags " $( LDFLAGS) " $(SOURCES )
80+
81+ wasm : ${SOURCES} $(GENERATED_CRDS )
82+ GOOS=wasip1 GOARCH=wasm CGO_ENABLED=${CGO_ENABLED} go build -o build/${BINARY} .wasm ${BUILD_FLAGS} -ldflags " $( LDFLAGS) " $(SOURCES )
83+
84+ linux : ${SOURCES} $(GENERATED_CRDS )
85+ GOOS=linux GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/linux/${BINARY} ${BUILD_FLAGS} -ldflags " $( LDFLAGS) " $(SOURCES )
5986
60- macos : ${SOURCES}
61- GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/macos/${BINARY} ${BUILD_FLAGS} -ldflags " $( LDFLAGS) " $^
87+ macos : ${SOURCES} $( GENERATED_CRDS )
88+ GOOS=darwin GOARCH=amd64 CGO_ENABLED=${CGO_ENABLED} go build -o build/macos/${BINARY} ${BUILD_FLAGS} -ldflags " $( LDFLAGS) " $( SOURCES )
6289
63- docker : ${DOCKERDIR}/${DOCKERFILE}
90+ docker : $( GENERATED_CRDS ) $ {DOCKERDIR}/${DOCKERFILE}
6491 echo ` (env)`
6592 echo " Tag ${TAG} "
6693 echo " Version ${VERSION} "
6794 echo " CDP tag ${CDP_TAG} "
6895 echo " git describe $( shell git describe --tags --always --dirty) "
69- docker build --rm -t " $( IMAGE ) : $( TAG ) $( CDP_TAG ) $( DEBUG_FRESH ) $( DEBUG_POSTFIX ) " -f " ${DOCKERDIR} /${DOCKERFILE} " --build-arg VERSION=" ${VERSION} " .
96+ docker build --rm -t " $( IMAGE_TAG ) " -f " ${DOCKERDIR} /${DOCKERFILE} " --build-arg VERSION=" ${VERSION} " --build-arg BASE_IMAGE= " ${BASE_IMAGE }" .
7097
7198indocker-race :
72- docker run --rm -v " ${GOPATH} " :" ${GOPATH} " -e GOPATH=" ${GOPATH} " -e RACE=1 -w ${PWD} golang:1.23.4 bash -c " make linux"
73-
74- push :
75- docker push " $( IMAGE) :$( TAG) $( CDP_TAG) "
99+ docker run --rm -v " ${GOPATH} " :" ${GOPATH} " -e GOPATH=" ${GOPATH} " -e RACE=1 -w ${PWD} golang:1.25.3 bash -c " make linux"
76100
77101mocks :
78102 GO111MODULE=on go generate ./...
79103
80- tools :
81- GO111MODULE=on go get k8s.io/client-go@kubernetes-1.30.4
82- GO111MODULE=on go install github.com/golang/mock/mockgen@v1.6.0
83- GO111MODULE=on go mod tidy
84-
85104fmt :
86105 @gofmt -l -w -s $(DIRS )
87106
88107vet :
89108 @go vet $(PKG )
90109 @staticcheck $(PKG )
91110
92- deps : tools
93- GO111MODULE=on go mod vendor
94-
95- test :
96- hack/verify-codegen.sh
111+ test : mocks $(GENERATED ) $(GENERATED_CRDS )
97112 GO111MODULE=on go test ./...
98113
99- codegen :
100- hack/update-codegen.sh
114+ codegen : $(GENERATED )
101115
102116e2e : docker # build operator image to be tested
103117 cd e2e; make e2etest
0 commit comments