@@ -2,14 +2,22 @@ VERSION ?= $(shell git describe --tags --dirty)
2
2
UNAME := $(shell uname)
3
3
ARCH := $(shell uname -m)
4
4
APP_NAME = embedded-cluster
5
+ COREDNS_IMAGE =
6
+ COREDNS_VERSION =
7
+ CALICO_NODE_IMAGE =
8
+ CALICO_NODE_VERSION =
9
+ METRICS_SERVER_IMAGE =
10
+ METRICS_SERVER_VERSION =
5
11
ADMIN_CONSOLE_CHART_REPO_OVERRIDE =
6
- ADMIN_CONSOLE_CHART_VERSION = 1.111.0
12
+ ADMIN_CONSOLE_CHART_VERSION = 1.112.1-build.1
7
13
ADMIN_CONSOLE_IMAGE_OVERRIDE =
8
14
ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE =
9
- EMBEDDED_OPERATOR_CHART_URL = oci://registry.replicated.com/library
10
- EMBEDDED_OPERATOR_CHART_NAME = embedded-cluster-operator
11
- EMBEDDED_OPERATOR_CHART_VERSION = 0.36.5
12
- EMBEDDED_OPERATOR_UTILS_IMAGE = busybox:1.36.1
15
+ ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE =
16
+ EMBEDDED_OPERATOR_CHART_VERSION = 0.40.2
17
+ EMBEDDED_OPERATOR_BINARY_URL_OVERRIDE =
18
+ EMBEDDED_OPERATOR_UTILS_IMAGE ?= replicated/embedded-cluster-utils
19
+ EMBEDDED_OPERATOR_UTILS_IMAGE_VERSION ?= $(subst +,-,$(VERSION ) )
20
+ EMBEDDED_OPERATOR_UTILS_IMAGE_LOCATION = proxy.replicated.com/anonymous/$(EMBEDDED_OPERATOR_UTILS_IMAGE ) :$(EMBEDDED_OPERATOR_UTILS_IMAGE_VERSION )
13
21
EMBEDDED_CLUSTER_OPERATOR_IMAGE_OVERRIDE =
14
22
OPENEBS_CHART_VERSION = 4.1.0
15
23
OPENEBS_UTILS_VERSION = 4.1.0
@@ -20,28 +28,36 @@ VELERO_CHART_VERSION = 6.3.0
20
28
VELERO_IMAGE_VERSION = v1.13.2
21
29
VELERO_AWS_PLUGIN_IMAGE_VERSION = v1.9.2
22
30
KUBECTL_VERSION = v1.30.1
23
- K0S_VERSION = v1.29.5 +k0s.0-ec .0
24
- K0S_GO_VERSION = v1.29.5 +k0s.0
25
- PREVIOUS_K0S_VERSION ?= v1.28.8 +k0s.0
26
- K0S_BINARY_SOURCE_OVERRIDE = https://ec-k0s-binaries.s3.amazonaws.com/k0s-v1.29.5%2Bk0s.0-ec.0
31
+ K0S_VERSION = v1.29.6 +k0s.0
32
+ K0S_GO_VERSION = v1.29.6 +k0s.0
33
+ PREVIOUS_K0S_VERSION ?= v1.28.10 +k0s.0
34
+ K0S_BINARY_SOURCE_OVERRIDE =
27
35
PREVIOUS_K0S_BINARY_SOURCE_OVERRIDE =
28
36
TROUBLESHOOT_VERSION = v0.93.1
29
37
KOTS_VERSION = v$(shell echo $(ADMIN_CONSOLE_CHART_VERSION ) | sed 's/\([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/')
30
38
KOTS_BINARY_URL_OVERRIDE =
31
- LOCAL_ARTIFACT_MIRROR_IMAGE ?= registry.replicated.com/library/embedded-cluster-local-artifact-mirror
32
- LOCAL_ARTIFACT_MIRROR_IMAGE_LOCATION = ${LOCAL_ARTIFACT_MIRROR_IMAGE}:$(subst +,-,$(VERSION ) )
39
+ LOCAL_ARTIFACT_MIRROR_IMAGE ?= replicated/embedded-cluster-local-artifact-mirror
40
+ LOCAL_ARTIFACT_MIRROR_IMAGE_VERSION ?= $(subst +,-,$(VERSION ) )
41
+ LOCAL_ARTIFACT_MIRROR_IMAGE_LOCATION = proxy.replicated.com/anonymous/$(LOCAL_ARTIFACT_MIRROR_IMAGE ) :$(LOCAL_ARTIFACT_MIRROR_IMAGE_VERSION )
33
42
LD_FLAGS = -X github.com/replicatedhq/embedded-cluster/pkg/defaults.K0sVersion=$(K0S_VERSION ) \
34
43
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.Version=$(VERSION ) \
35
44
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.TroubleshootVersion=$(TROUBLESHOOT_VERSION ) \
36
45
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.KubectlVersion=$(KUBECTL_VERSION ) \
37
46
-X github.com/replicatedhq/embedded-cluster/pkg/defaults.LocalArtifactMirrorImage=$(LOCAL_ARTIFACT_MIRROR_IMAGE_LOCATION ) \
47
+ -X github.com/replicatedhq/embedded-cluster/pkg/config/images.CoreDNSImage=$(COREDNS_IMAGE ) \
48
+ -X github.com/replicatedhq/embedded-cluster/pkg/config/images.CoreDNSVersion=$(COREDNS_VERSION ) \
49
+ -X github.com/replicatedhq/embedded-cluster/pkg/config/images.CalicoNodeImage=$(CALICO_NODE_IMAGE ) \
50
+ -X github.com/replicatedhq/embedded-cluster/pkg/config/images.CalicoNodeVersion=$(CALICO_NODE_VERSION ) \
51
+ -X github.com/replicatedhq/embedded-cluster/pkg/config/images.MetricsServerImage=$(METRICS_SERVER_IMAGE ) \
52
+ -X github.com/replicatedhq/embedded-cluster/pkg/config/images.MetricsServerVersion=$(METRICS_SERVER_VERSION ) \
38
53
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.ChartRepoOverride=$(ADMIN_CONSOLE_CHART_REPO_OVERRIDE ) \
39
54
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.Version=$(ADMIN_CONSOLE_CHART_VERSION ) \
40
55
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.ImageOverride=$(ADMIN_CONSOLE_IMAGE_OVERRIDE ) \
41
56
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.MigrationsImageOverride=$(ADMIN_CONSOLE_MIGRATIONS_IMAGE_OVERRIDE ) \
57
+ -X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.KurlProxyImageOverride=$(ADMIN_CONSOLE_KURL_PROXY_IMAGE_OVERRIDE ) \
42
58
-X github.com/replicatedhq/embedded-cluster/pkg/addons/adminconsole.KotsVersion=$(KOTS_VERSION ) \
43
59
-X github.com/replicatedhq/embedded-cluster/pkg/addons/embeddedclusteroperator.Version=$(EMBEDDED_OPERATOR_CHART_VERSION ) \
44
- -X github.com/replicatedhq/embedded-cluster/pkg/addons/embeddedclusteroperator.UtilsImage=$(EMBEDDED_OPERATOR_UTILS_IMAGE ) \
60
+ -X github.com/replicatedhq/embedded-cluster/pkg/addons/embeddedclusteroperator.UtilsImage=$(EMBEDDED_OPERATOR_UTILS_IMAGE_LOCATION ) \
45
61
-X github.com/replicatedhq/embedded-cluster/pkg/addons/embeddedclusteroperator.ImageOverride=$(EMBEDDED_CLUSTER_OPERATOR_IMAGE_OVERRIDE ) \
46
62
-X github.com/replicatedhq/embedded-cluster/pkg/addons/openebs.Version=$(OPENEBS_CHART_VERSION ) \
47
63
-X github.com/replicatedhq/embedded-cluster/pkg/addons/openebs.UtilsVersion=$(OPENEBS_UTILS_VERSION ) \
@@ -52,6 +68,8 @@ LD_FLAGS = -X github.com/replicatedhq/embedded-cluster/pkg/defaults.K0sVersion=$
52
68
-X github.com/replicatedhq/embedded-cluster/pkg/addons/velero.VeleroTag=$(VELERO_IMAGE_VERSION ) \
53
69
-X github.com/replicatedhq/embedded-cluster/pkg/addons/velero.AwsPluginTag=$(VELERO_AWS_PLUGIN_IMAGE_VERSION )
54
70
71
+ export PATH := $(shell pwd) /bin:$(PATH )
72
+
55
73
.DEFAULT_GOAL := default
56
74
default : embedded-cluster-linux-amd64
57
75
@@ -89,7 +107,10 @@ pkg/goods/bins/kubectl-preflight: Makefile
89
107
90
108
pkg/goods/bins/local-artifact-mirror : Makefile
91
109
mkdir -p pkg/goods/bins
92
- CGO_ENABLED=0 go build -o pkg/goods/bins/local-artifact-mirror ./cmd/local-artifact-mirror
110
+ go build \
111
+ -tags osusergo,netgo \
112
+ -ldflags=" -s -w -extldflags=-static" \
113
+ -o pkg/goods/bins/local-artifact-mirror ./cmd/local-artifact-mirror
93
114
94
115
pkg/goods/internal/bins/kubectl-kots : Makefile
95
116
mkdir -p pkg/goods/internal/bins
@@ -158,6 +179,8 @@ clean:
158
179
rm -rf output
159
180
rm -rf pkg/goods/bins
160
181
rm -rf pkg/goods/internal/bins
182
+ rm -rf build
183
+ rm -rf bin
161
184
162
185
.PHONY : lint
163
186
lint :
@@ -176,20 +199,134 @@ scan:
176
199
--ignore-unfixed \
177
200
./
178
201
179
- print-% :
180
- @echo -n $($* )
202
+ .PHONY : build-utils-image
203
+ build-utils-image : export IMAGE ?= $(EMBEDDED_OPERATOR_UTILS_IMAGE ) :$(EMBEDDED_OPERATOR_UTILS_IMAGE_VERSION )
204
+ build-utils-image : export VERSION ?= $(EMBEDDED_OPERATOR_UTILS_IMAGE_VERSION )
205
+ build-utils-image : export MELANGE_CONFIG = deploy/packages/utils/melange.tmpl.yaml
206
+ build-utils-image : export APKO_CONFIG = deploy/images/utils/apko.tmpl.yaml
207
+ build-utils-image : apko-build
181
208
182
- .PHONY : build-local-artifact-mirror-image
183
- build-local-artifact-mirror-image :
184
- docker build -t $(LOCAL_ARTIFACT_MIRROR_IMAGE_LOCATION ) -f Dockerfile .
209
+ .PHONY : build-and-push-utils-image
210
+ build-and-push-utils-image : export IMAGE ?= $(EMBEDDED_OPERATOR_UTILS_IMAGE ) :$(EMBEDDED_OPERATOR_UTILS_IMAGE_VERSION )
211
+ build-and-push-utils-image : export VERSION ?= $(EMBEDDED_OPERATOR_UTILS_IMAGE_VERSION )
212
+ build-and-push-utils-image : export APKO_CONFIG = deploy/images/utils/apko.tmpl.yaml
213
+ build-and-push-utils-image : apko-login apko-build-and-publish
185
214
186
- .PHONY : push-local-artifact-mirror-image
187
- push-local-artifact-mirror-image :
188
- docker push $(LOCAL_ARTIFACT_MIRROR_IMAGE_LOCATION )
215
+ .PHONY : build-local-artifact-mirror-image
216
+ build-local-artifact-mirror-image : export IMAGE ?= $(LOCAL_ARTIFACT_MIRROR_IMAGE ) :$(LOCAL_ARTIFACT_MIRROR_IMAGE_VERSION )
217
+ build-local-artifact-mirror-image : export VERSION ?= $(LOCAL_ARTIFACT_MIRROR_IMAGE_VERSION )
218
+ build-local-artifact-mirror-image : export MELANGE_CONFIG = deploy/packages/local-artifact-mirror/melange.tmpl.yaml
219
+ build-local-artifact-mirror-image : export APKO_CONFIG = deploy/images/local-artifact-mirror/apko.tmpl.yaml
220
+ build-local-artifact-mirror-image : melange-build apko-build
189
221
190
222
.PHONY : build-and-push-local-artifact-mirror-image
191
- build-and-push-local-artifact-mirror-image : build-local-artifact-mirror-image push-local-artifact-mirror-image
223
+ build-and-push-local-artifact-mirror-image : export IMAGE ?= $(LOCAL_ARTIFACT_MIRROR_IMAGE ) :$(LOCAL_ARTIFACT_MIRROR_IMAGE_VERSION )
224
+ build-and-push-local-artifact-mirror-image : export VERSION ?= $(LOCAL_ARTIFACT_MIRROR_IMAGE_VERSION )
225
+ build-and-push-local-artifact-mirror-image : export MELANGE_CONFIG = deploy/packages/local-artifact-mirror/melange.tmpl.yaml
226
+ build-and-push-local-artifact-mirror-image : export APKO_CONFIG = deploy/images/local-artifact-mirror/apko.tmpl.yaml
227
+ build-and-push-local-artifact-mirror-image : melange-build apko-login apko-build-and-publish
228
+
229
+ CHAINGUARD_TOOLS_USE_DOCKER = 0
230
+ ifeq ($(CHAINGUARD_TOOLS_USE_DOCKER ) ,"1")
231
+ MELANGE_CACHE_DIR ?= /go/pkg/mod
232
+ APKO_CMD = docker run -v $(shell pwd) :/work -w /work -v $(shell pwd) /build/.docker:/root/.docker cgr.dev/chainguard/apko
233
+ MELANGE_CMD = docker run --privileged --rm -v $(shell pwd) :/work -w /work -v "$(shell go env GOMODCACHE) ":${MELANGE_CACHE_DIR} cgr.dev/chainguard/melange
234
+ else
235
+ MELANGE_CACHE_DIR ?= build/.melange-cache
236
+ APKO_CMD = apko
237
+ MELANGE_CMD = melange
238
+ endif
239
+
240
+ $(MELANGE_CACHE_DIR ) :
241
+ mkdir -p $(MELANGE_CACHE_DIR )
242
+
243
+ .PHONY : apko-build
244
+ apko-build : export ARCHS ?= amd64
245
+ apko-build : check-env-IMAGE apko-template
246
+ cd build && ${APKO_CMD} \
247
+ build apko.yaml ${IMAGE} apko.tar \
248
+ --arch ${ARCHS}
249
+
250
+ .PHONY : apko-build-and-publish
251
+ apko-build-and-publish : export ARCHS ?= amd64
252
+ apko-build-and-publish : check-env-IMAGE apko-template
253
+ cd build && ${APKO_CMD} \
254
+ publish apko.yaml ${IMAGE} \
255
+ --arch ${ARCHS} | tee digest
256
+
257
+ .PHONY : apko-login
258
+ apko-login :
259
+ rm -f build/.docker/config.json
260
+ @ { [ " ${PASSWORD} " = " " ] || [ " ${USERNAME} " = " " ] ; } || \
261
+ ${APKO_CMD} \
262
+ login -u " ${USERNAME} " \
263
+ --password " ${PASSWORD} " " ${REGISTRY} "
264
+
265
+ .PHONY : melange-build
266
+ melange-build : export ARCHS ?= amd64
267
+ melange-build : $(MELANGE_CACHE_DIR ) melange-template
268
+ ${MELANGE_CMD} \
269
+ keygen build/melange.rsa
270
+ ${MELANGE_CMD} \
271
+ build build/melange.yaml \
272
+ --arch ${ARCHS} \
273
+ --signing-key build/melange.rsa \
274
+ --cache-dir=$(MELANGE_CACHE_DIR ) \
275
+ --source-dir . \
276
+ --out-dir build/packages/
277
+
278
+ .PHONY : melange-template
279
+ melange-template : check-env-MELANGE_CONFIG check-env-VERSION
280
+ mkdir -p build
281
+ envsubst ' $${VERSION}' < ${MELANGE_CONFIG} > build/melange.yaml
282
+
283
+ .PHONY : apko-template
284
+ apko-template : check-env-APKO_CONFIG check-env-VERSION
285
+ mkdir -p build
286
+ envsubst ' $${VERSION}' < ${APKO_CONFIG} > build/apko.yaml
192
287
193
288
.PHONY : buildtools
194
289
buildtools :
195
290
go build -o ./output/bin/buildtools ./cmd/buildtools
291
+
292
+ .PHONY : cache-files
293
+ cache-files : export EMBEDDED_OPERATOR_BINARY_URL_OVERRIDE
294
+ cache-files :
295
+ ./scripts/cache-files.sh
296
+
297
+ # # Location to install dependencies to
298
+ LOCALBIN ?= $(shell pwd) /bin
299
+ $(LOCALBIN ) :
300
+ mkdir -p $(LOCALBIN )
301
+
302
+ # # Tool Binaries
303
+ MELANGE ?= $(LOCALBIN ) /melange
304
+ APKO ?= $(LOCALBIN ) /apko
305
+
306
+ # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
307
+ ifeq (,$(shell go env GOBIN) )
308
+ GOBIN =$(shell go env GOPATH) /bin
309
+ else
310
+ GOBIN =$(shell go env GOBIN)
311
+ endif
312
+
313
+ melange : $(MELANGE )
314
+ $(MELANGE ) : $(LOCALBIN )
315
+ go install chainguard.dev/melange@latest && \
316
+ test -s $(GOBIN ) /melange && \
317
+ ln -sf $(GOBIN ) /melange $(LOCALBIN ) /melange
318
+
319
+ apko : $(APKO )
320
+ $(APKO ) : $(LOCALBIN )
321
+ go install chainguard.dev/apko@latest && \
322
+ test -s $(GOBIN ) /apko && \
323
+ ln -sf $(GOBIN ) /apko $(LOCALBIN ) /apko
324
+
325
+ print-% :
326
+ @echo -n $($* )
327
+
328
+ check-env-% :
329
+ @ if [ " ${${* } } " = " " ]; then \
330
+ echo " Environment variable $* not set" ; \
331
+ exit 1; \
332
+ fi
0 commit comments