9
9
GOBIN =$(shell go env GOBIN)
10
10
endif
11
11
12
- # for version informations in the binary
12
+ # for version information in the binary
13
13
SHA := $(shell git rev-parse --short=8 HEAD)
14
14
GITVERSION := $(shell git describe --long --all)
15
15
BUILDDATE := $(shell date -Iseconds)
16
16
VERSION := $(or ${DOCKER_TAG},latest)
17
+ LOCALBIN ?= $(shell pwd) /bin
18
+ CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen
19
+ CONTROLLER_TOOLS_VERSION ?= v0.14.0
17
20
18
21
# Postgres operator variables for YAML download
19
- POSTGRES_OPERATOR_VERSION ?= v1.6 .0
22
+ POSTGRES_OPERATOR_VERSION ?= v1.11 .0
20
23
POSTGRES_OPERATOR_URL ?= https://raw.githubusercontent.com/zalando/postgres-operator/$(POSTGRES_OPERATOR_VERSION ) /manifests
21
24
POSTGRES_CRD_URL ?= https://raw.githubusercontent.com/zalando/postgres-operator/$(POSTGRES_OPERATOR_VERSION ) /charts/postgres-operator/crds/postgresqls.yaml
22
25
@@ -53,26 +56,26 @@ run: generate fmt vet manifests install-configmap-sidecars install-crd-cwnp
53
56
-port-range-size 8000
54
57
55
58
# Install CRDs into a cluster
56
- install : manifests
57
- kustomize build config/crd | kubectl --kubeconfig kubeconfig apply -f -
59
+ localkube- install-crd : manifests
60
+ kubectl kustomize config/crd | kubectl --kubeconfig kubeconfig-ctrl apply -f -
58
61
59
- # Uninstall CRDs from a cluster
60
- uninstall : manifests
61
- kustomize build config/crd | kubectl --kubeconfig kubeconfig delete -f -
62
+ # # Uninstall CRDs from a cluster
63
+ # localkube- uninstall: manifests
64
+ # kubectl kustomize config/crd | kubectl --kubeconfig kubeconfig-ctrl delete -f -
62
65
63
66
# Deploy controller in the configured Kubernetes cluster in ~/.kube/config
64
- deploy : install-crd-cwnp manifests secret kind -load-image
65
- cd config/manager && kustomize edit set image controller=${IMG} :${VERSION}
66
- kustomize build config/default | kubectl apply -f -
67
+ deploy : install-crd-cwnp manifests secret localkube -load-image
68
+ cd config/manager && kubectl kustomize edit set image controller=${IMG} :${VERSION}
69
+ kubectl kustomize config/default | kubectl apply -f -
67
70
68
71
# clean up deployed resources in the configured Kubernetes cluster in ~/.kube/config
69
72
cleanup : manifests
70
- cd config/manager && kustomize edit set image controller=${IMG} :${VERSION}
71
- kustomize build config/default | kubectl delete -f -
73
+ cd config/manager && kubectl kustomize edit set image controller=${IMG} :${VERSION}
74
+ kubectl kustomize config/default | kubectl delete -f -
72
75
73
76
# Generate manifests e.g. CRD, RBAC etc.
74
77
manifests : controller-gen
75
- $(CONTROLLER_GEN ) crd rbac:roleName=manager-role webhook paths=" ./..." output:crd:artifacts:config =config/crd/bases
78
+ $(CONTROLLER_GEN ) + crd:generateEmbeddedObjectMeta=true paths=" ./..." + output:dir =config/crd/bases
76
79
77
80
# Run go fmt against code
78
81
fmt :
@@ -106,25 +109,18 @@ cacheobjs: cacheobjs-daily-base
106
109
docker-push :
107
110
docker push ${IMG} :${VERSION}
108
111
109
- kind -load-image : cacheobjs
110
- kind load docker-image ${IMG} :${VERSION} -v 1
112
+ localkube -load-image : cacheobjs
113
+ kind load docker-image --name svc ${IMG} :${VERSION} -v 1
111
114
112
115
# find or download controller-gen
113
116
# download controller-gen if necessary
114
- controller-gen :
115
- ifeq (, $(shell which controller-gen) )
116
- @{ \
117
- set -e ;\
118
- CONTROLLER_GEN_TMP_DIR=$$(mktemp -d) ;\
119
- cd $$CONTROLLER_GEN_TMP_DIR ;\
120
- go mod init tmp ;\
121
- go install sigs.k8s.io/controller-tools/cmd/
[email protected] ;\
122
- rm -rf $$CONTROLLER_GEN_TMP_DIR ;\
123
- }
124
- CONTROLLER_GEN =$(GOBIN ) /controller-gen
125
- else
126
- CONTROLLER_GEN =$(shell which controller-gen)
127
- endif
117
+ .PHONY : controller-gen
118
+ controller-gen : $(CONTROLLER_GEN )
119
+ $(CONTROLLER_GEN ) : $(LOCALBIN )
120
+ test -s $(LOCALBIN ) /controller-gen && $(LOCALBIN ) /controller-gen --version | grep -q $(CONTROLLER_TOOLS_VERSION ) || \
121
+ GOBIN=$(LOCALBIN ) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION )
122
+ $(LOCALBIN ) :
123
+ mkdir -p $(LOCALBIN )
128
124
129
125
# Todo: Fix two metrics-addr. Not read right now.
130
126
configmap :
@@ -146,8 +142,8 @@ svc-postgres-operator-yaml:
146
142
-f $(POSTGRES_OPERATOR_URL ) /api-service.yaml \
147
143
--dry-run=client -o yaml > external/svc-postgres-operator.yaml
148
144
149
- crd-postgresql-yaml :
150
- kubectl apply -f $(POSTGRES_CRD_URL ) --dry-run=client -o yaml > external/crd-postgresql.yaml
145
+ # crd-postgresql-yaml:
146
+ # kubectl apply -f $(POSTGRES_CRD_URL) --dry-run=client -o yaml > external/crd-postgresql.yaml
151
147
152
148
secret :
153
149
@{ \
@@ -160,38 +156,30 @@ secret:
160
156
kubectl create secret generic postgreslet -n $$ NS --from-file $$ SECRET_DIR/ --dry-run=client -o yaml | kubectl apply -f - ; \
161
157
}
162
158
163
- create-postgres :
164
- kubectl create ns metal-extension-cloud --dry-run=client --save-config -o yaml | kubectl --kubeconfig kubeconfig apply -f -
165
- kubectl --kubeconfig kubeconfig apply -f config/samples/complete.yaml
166
-
167
- delete-postgres :
168
- kubectl --kubeconfig kubeconfig delete -f config/samples/complete.yaml
169
-
170
- helm-clean :
171
- rm -f charts/postgreslet/Chart.lock
172
- rm -f charts/postgreslet/charts/*
159
+ localkube-create-postgres :
160
+ kubectl create ns metal-extension-cloud --dry-run=client --save-config -o yaml | kubectl --kubeconfig kubeconfig-ctrl apply -f -
161
+ kubectl --kubeconfig kubeconfig-ctrl apply -f config/samples/complete.yaml
173
162
174
- helm :
175
- helm dependency build charts/postgreslet/
176
- helm package charts/postgreslet/
163
+ localkube-delete-postgres :
164
+ kubectl --kubeconfig kubeconfig-ctrl delete -f config/samples/complete.yaml
177
165
178
166
test-cwnp :
179
167
./hack/test-cwnp.sh
180
168
181
- install-crd-cwnp :
182
- kubectl apply -f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml
183
- kubectl create ns firewall --dry-run=client --save-config -o yaml | kubectl apply -f -
169
+ localkube- install-crd-cwnp :
170
+ kubectl apply --kubeconfig ./kubeconfig-svc - f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml
171
+ kubectl create ns firewall --kubeconfig ./kubeconfig-svc -- dry-run=client --save-config -o yaml | kubectl apply --kubeconfig ./kubeconfig-svc -f -
184
172
185
- uninstall-crd-cwnp :
186
- kubectl delete ns firewall
187
- kubectl delete -f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml
173
+ # localkube- uninstall-crd-cwnp:
174
+ # kubectl delete ns firewall
175
+ # kubectl delete -f https://raw.githubusercontent.com/metal-stack/firewall-controller/master/config/crd/bases/metal-stack.io_clusterwidenetworkpolicies.yaml
188
176
189
- configmap-sidecars :
190
- helm template postgreslet --namespace postgreslet-system charts/postgreslet --show-only templates/configmap-sidecars.yaml > external/test/configmap-sidecars.yaml
177
+ # configmap-sidecars:
178
+ # helm template postgreslet --namespace postgreslet-system charts/postgreslet --show-only templates/configmap-sidecars.yaml > external/test/configmap-sidecars.yaml
191
179
192
- install-configmap-sidecars :
193
- kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml | kubectl apply -f -
194
- kubectl apply -f external/test/configmap-sidecars.yaml
180
+ # install-configmap-sidecars:
181
+ # kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml | kubectl apply -f -
182
+ # kubectl apply -f external/test/configmap-sidecars.yaml
195
183
196
184
# Todo: Add release version when the changes in main branch are released
197
185
crd-cwnp-for-testing :
@@ -213,42 +201,51 @@ endif
213
201
kubebuilder-version-ci :
214
202
@echo ${KUBEBUILDER_VERSION}
215
203
216
- two-kind-clusters :
204
+ localkube-setup :
205
+ # ###############################################################################
206
+ # #
207
+ # Control Cluster #
208
+ # #
209
+ # ###############################################################################
217
210
#
218
- # # control-plane-cluster
219
- # #######################
220
- kind create cluster --name ctrl --kubeconfig ./kubeconfig
221
- container_ip=$$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 'ctrl-control-plane' ) ; \
222
- kubectl --kubeconfig=kubeconfig config set-cluster ' kind-ctrl' --server=" https://$$ {container_ip}:6443"
223
- make install
224
- make create-postgres
211
+ make localkube-ctrl
225
212
#
226
- # # service-cluster
227
- # #######################
228
- kind create cluster
229
- sed ' s/z.Spec.Volume.StorageClass/\/\/z.Spec.Volume.StorageClass/' -i api/v1/postgres_types.go
230
- make kind-load-image
231
- sed ' s/\/\/z.Spec.Volume.StorageClass/z.Spec.Volume.StorageClass/' -i api/v1/postgres_types.go
232
- kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml | kubectl apply -f -
233
- make install-crd-cwnp
234
- make install-crd-servicemonitor
235
- # helm repo add metal-stack https://helm.metal-stack.io # stable repo
236
- # helm upgrade --install postgreslet metal-stack/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
237
- helm repo add metal-stack-30 https://helm.metal-stack.io/pull_requests/custom-operator-image # PR repo
238
- helm upgrade --install postgreslet metal-stack-30/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
213
+ # ###############################################################################
214
+ # #
215
+ # Service Cluster #
216
+ # #
217
+ # ###############################################################################
218
+ #
219
+ make localkube-svc
239
220
240
- destroy-two-kind-clusters :
221
+ localkube-ctrl :
222
+ kind create cluster --name ctrl --kubeconfig ./kubeconfig-ctrl --image kindest/node:v1.24.15
223
+ container_ip=$$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 'ctrl-control-plane' ) ; \
224
+ kubectl --kubeconfig=kubeconfig-ctrl config set-cluster ' kind-ctrl' --server=" https://$$ {container_ip}:6443"
225
+ make localkube-install-crd
226
+ make localkube-create-postgres
227
+
228
+ localkube-svc :
229
+ kind create cluster --name svc --kubeconfig ./kubeconfig-svc --image kindest/node:v1.24.15
230
+ # make localkube-load-image
231
+ kubectl create ns postgreslet-system --dry-run=client --save-config -o yaml --kubeconfig ./kubeconfig-svc | kubectl apply --kubeconfig ./kubeconfig-svc -f -
232
+ make localkube-install-crd-cwnp
233
+ make localkube-install-crd-servicemonitor
234
+ make localkube-reinstall-postgreslet
235
+
236
+ localkube-teardown :
241
237
kind delete cluster --name ctrl
242
- kind delete cluster --name kind
238
+ kind delete cluster --name svc
243
239
244
- install-crd-servicemonitor :
245
- kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
240
+ localkube-install-crd-servicemonitor :
241
+ kubectl apply --kubeconfig ./kubeconfig-svc -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
242
+ kubectl apply --kubeconfig ./kubeconfig-svc -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.45.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
246
243
247
- reinstall-postgreslet : kind -load-image
244
+ localkube- reinstall-postgreslet : localkube -load-image
248
245
# helm repo add metal-stack https://helm.metal-stack.io # stable repo
249
- # helm upgrade --install postgreslet metal-stack/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
246
+ # helm upgrade --install postgreslet metal-stack/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
250
247
helm repo add metal-stack-30 https://helm.metal-stack.io/pull_requests/custom-operator-image # PR repo
251
- helm upgrade --install postgreslet metal-stack-30/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig
248
+ helm upgrade --install postgreslet metal-stack-30/postgreslet --namespace postgreslet-system --values svc-cluster-values.yaml --set-file controlplaneKubeconfig=kubeconfig-ctrl --kubeconfig ./kubeconfig-svc
252
249
253
250
lint :
254
251
golangci-lint run -p bugs -p unused --timeout=5m
0 commit comments