istio.io/istio@v0.0.0-20240520182934-d79c90f27776/tools/packaging/packaging.mk (about) 1 #remove leading characters since package version expects to start with digit 2 PACKAGE_VERSION ?= $(shell echo $(VERSION) | sed 's/^[a-z]*-//' | sed 's/-//') 3 4 # Creates the proxy debian packages. BUILD_WITH_CONTAINER=1 or in CI/CD (BUILD_WITH_CONTAINER=0) 5 deb: ${TARGET_OUT_LINUX}/release/istio-sidecar.deb 6 7 # fpm likes to add extremely high levels of compression. This is fine for release, but for local runs 8 # where we are just pushing to a local registry (compressed again!), it adds ~1min to builds. 9 ifneq ($(FAST_VM_BUILDS),) 10 DEB_COMPRESSION=--deb-compression=none 11 RPM_COMPRESSION=--rpm-compression=none 12 endif 13 14 # Base directory for istio binaries. Likely to change ! 15 ISTIO_DEB_BIN=/usr/local/bin 16 17 # Home directory of istio-proxy user. It is symlinked /etc/istio --> /var/lib/istio 18 ISTIO_PROXY_HOME=/var/lib/istio 19 20 ISTIO_DEB_DEPS:=pilot-discovery istioctl 21 ISTIO_FILES:= 22 $(foreach DEP,$(ISTIO_DEB_DEPS),\ 23 $(eval ${TARGET_OUT_LINUX}/release/istio.deb: $(TARGET_OUT_LINUX)/$(DEP)) \ 24 $(eval ISTIO_FILES+=$(TARGET_OUT_LINUX)/$(DEP)=$(ISTIO_DEB_BIN)/$(DEP)) ) 25 26 SIDECAR_DEB_DEPS:=envoy pilot-agent 27 SIDECAR_FILES:= 28 $(foreach DEP,$(SIDECAR_DEB_DEPS),\ 29 $(eval ${TARGET_OUT_LINUX}/release/istio-sidecar.deb: $(TARGET_OUT_LINUX)/$(DEP)) \ 30 $(eval ${TARGET_OUT_LINUX}/release/istio-sidecar.rpm: $(TARGET_OUT_LINUX)/$(DEP)) \ 31 $(eval SIDECAR_FILES+=$(TARGET_OUT_LINUX)/$(DEP)=$(ISTIO_DEB_BIN)/$(DEP)) ) 32 33 ISTIO_DEB_DEST:=${ISTIO_DEB_BIN}/istio-start.sh \ 34 /lib/systemd/system/istio.service \ 35 /var/lib/istio/envoy/sidecar.env 36 37 $(foreach DEST,$(ISTIO_DEB_DEST),\ 38 $(eval ${TARGET_OUT_LINUX}/istio-sidecar.deb: tools/packaging/common/$(notdir $(DEST))) \ 39 $(eval SIDECAR_FILES+=${REPO_ROOT}/tools/packaging/common/$(notdir $(DEST))=$(DEST))) 40 41 SIDECAR_FILES+=${REPO_ROOT}/tools/packaging/common/envoy_bootstrap.json=/var/lib/istio/envoy/envoy_bootstrap_tmpl.json 42 43 # original name used in 0.2 - will be updated to 'istio.deb' since it now includes all istio binaries. 44 SIDECAR_PACKAGE_NAME ?= istio-sidecar 45 46 # TODO: rename istio-sidecar.deb to istio.deb 47 48 # Note: adding --deb-systemd ${REPO_ROOT}/tools/packaging/common/istio.service will result in 49 # a /etc/systemd/system/multi-user.target.wants/istio.service and auto-start. Currently not used 50 # since we need configuration. 51 # --iteration 1 adds a "-1" suffix to the version that didn't exist before 52 ${TARGET_OUT_LINUX}/release/istio-sidecar.deb: | ${TARGET_OUT_LINUX} deb/fpm 53 ${TARGET_OUT_LINUX}/release/istio-sidecar.rpm: | ${TARGET_OUT_LINUX} rpm/fpm 54 55 # Package the sidecar rpm file. 56 rpm/fpm: 57 rm -f ${TARGET_OUT_LINUX}/release/istio-sidecar.rpm 58 fpm -s dir -t rpm -n ${SIDECAR_PACKAGE_NAME} -p ${TARGET_OUT_LINUX}/release/istio-sidecar.rpm --version $(PACKAGE_VERSION) -f \ 59 --url http://istio.io \ 60 --license Apache \ 61 --architecture "${TARGET_ARCH}" \ 62 --vendor istio.io \ 63 --maintainer istio@istio.io \ 64 --after-install tools/packaging/postinst.sh \ 65 --config-files /var/lib/istio/envoy/envoy_bootstrap_tmpl.json \ 66 --config-files /var/lib/istio/envoy/sidecar.env \ 67 --description "Istio Sidecar" \ 68 --depends iproute \ 69 --depends iptables \ 70 --depends sudo \ 71 --depends hostname \ 72 $(RPM_COMPRESSION) \ 73 $(SIDECAR_FILES) 74 75 # Package the sidecar deb file. 76 deb/fpm: 77 rm -f ${TARGET_OUT_LINUX}/release/istio-sidecar.deb 78 fpm -s dir -t deb -n ${SIDECAR_PACKAGE_NAME} -p ${TARGET_OUT_LINUX}/release/istio-sidecar.deb --version $(PACKAGE_VERSION) -f \ 79 --url http://istio.io \ 80 --license Apache \ 81 --vendor istio.io \ 82 --architecture "${TARGET_ARCH}" \ 83 --maintainer istio@istio.io \ 84 --after-install tools/packaging/postinst.sh \ 85 --config-files /var/lib/istio/envoy/envoy_bootstrap_tmpl.json \ 86 --config-files /var/lib/istio/envoy/sidecar.env \ 87 --description "Istio Sidecar" \ 88 --depends iproute2 \ 89 --depends iptables \ 90 --depends sudo \ 91 --depends hostname \ 92 $(DEB_COMPRESSION) \ 93 $(SIDECAR_FILES) 94 95 .PHONY: \ 96 deb \ 97 deb/fpm \ 98 rpm/fpm \ 99 sidecar.deb