2021-07-20 22:59:48 +03:00
|
|
|
SHELL = /bin/bash
|
2022-02-03 19:45:04 +03:00
|
|
|
TAG ?= $(shell git describe --exact-match 2>/dev/null)
|
2021-04-15 20:53:44 +03:00
|
|
|
COMMIT = $(shell git rev-parse --short=7 HEAD)$(shell [[ $$(git status --porcelain) = "" ]] || echo -dirty)
|
2022-01-31 12:23:30 +03:00
|
|
|
ARO_IMAGE_BASE = ${RP_IMAGE_ACR}.azurecr.io/aro
|
2022-03-23 01:56:45 +03:00
|
|
|
E2E_FLAGS ?= -test.timeout 180m -test.v -ginkgo.v -ginkgo.noColor
|
2019-11-30 16:51:47 +03:00
|
|
|
|
2021-06-16 00:39:42 +03:00
|
|
|
# fluentbit version must also be updated in RP code, see pkg/util/version/const.go
|
2021-12-13 13:57:01 +03:00
|
|
|
FLUENTBIT_VERSION = 1.7.8-1
|
2021-11-16 21:29:01 +03:00
|
|
|
FLUENTBIT_IMAGE ?= ${RP_IMAGE_ACR}.azurecr.io/fluentbit:$(FLUENTBIT_VERSION)
|
2021-08-13 19:47:17 +03:00
|
|
|
AUTOREST_VERSION = 3.3.2
|
|
|
|
AUTOREST_IMAGE = "quay.io/openshift-on-azure/autorest:${AUTOREST_VERSION}"
|
2021-06-16 00:39:42 +03:00
|
|
|
|
2020-11-12 21:45:31 +03:00
|
|
|
ifneq ($(shell uname -s),Darwin)
|
|
|
|
export CGO_CFLAGS=-Dgpgme_off_t=off_t
|
|
|
|
endif
|
2020-08-10 15:25:30 +03:00
|
|
|
|
2022-02-22 18:44:43 +03:00
|
|
|
ifeq ($(TAG),)
|
|
|
|
VERSION = $(COMMIT)
|
|
|
|
else
|
|
|
|
VERSION = $(TAG)
|
|
|
|
endif
|
|
|
|
|
|
|
|
ARO_IMAGE ?= $(ARO_IMAGE_BASE):$(VERSION)
|
|
|
|
|
2021-06-01 16:23:55 +03:00
|
|
|
build-all:
|
2021-08-26 17:17:38 +03:00
|
|
|
go build -tags aro,containers_image_openpgp ./...
|
2021-06-01 16:23:55 +03:00
|
|
|
|
2019-12-22 20:47:29 +03:00
|
|
|
aro: generate
|
2022-02-22 18:44:43 +03:00
|
|
|
go build -tags aro,containers_image_openpgp,codec.safe -ldflags "-X github.com/Azure/ARO-RP/pkg/util/version.GitCommit=$(VERSION)" ./cmd/aro
|
2021-08-26 17:17:38 +03:00
|
|
|
|
|
|
|
runlocal-rp:
|
2022-04-04 18:51:46 +03:00
|
|
|
go run -tags aro,containers_image_openpgp -ldflags "-X github.com/Azure/ARO-RP/pkg/util/version.GitCommit=$(VERSION)" ./cmd/aro rp
|
2019-11-18 09:24:26 +03:00
|
|
|
|
2020-10-08 03:20:20 +03:00
|
|
|
az: pyenv
|
|
|
|
. pyenv/bin/activate && \
|
|
|
|
cd python/az/aro && \
|
2021-05-05 23:19:29 +03:00
|
|
|
python3 ./setup.py bdist_egg && \
|
|
|
|
python3 ./setup.py bdist_wheel || true && \
|
2021-08-16 15:44:58 +03:00
|
|
|
rm -f ~/.azure/commandIndex.json # https://github.com/Azure/azure-cli/issues/14997
|
2019-12-13 21:09:53 +03:00
|
|
|
|
2019-11-18 09:24:26 +03:00
|
|
|
clean:
|
2019-12-22 20:47:29 +03:00
|
|
|
rm -rf python/az/aro/{aro.egg-info,build,dist} aro
|
2019-12-13 21:09:53 +03:00
|
|
|
find python -type f -name '*.pyc' -delete
|
|
|
|
find python -type d -name __pycache__ -delete
|
2022-02-10 20:08:55 +03:00
|
|
|
find -type d -name 'gomock_reflect_[0-9]*' -exec rm -rf {} \+ 2>/dev/null
|
2019-11-18 09:24:26 +03:00
|
|
|
|
2019-12-11 15:06:19 +03:00
|
|
|
client: generate
|
2021-08-13 19:47:17 +03:00
|
|
|
hack/build-client.sh "${AUTOREST_IMAGE}" 2020-04-30 2021-09-01-preview
|
2019-12-03 14:33:55 +03:00
|
|
|
|
2021-03-09 00:02:45 +03:00
|
|
|
# TODO: hard coding dev-config.yaml is clunky; it is also probably convenient to
|
|
|
|
# override COMMIT.
|
|
|
|
deploy:
|
2022-04-04 23:25:16 +03:00
|
|
|
go run -tags aro,containers_image_openpgp -ldflags "-X github.com/Azure/ARO-RP/pkg/util/version.GitCommit=$(VERSION)" ./cmd/aro deploy dev-config.yaml ${LOCATION}
|
2021-03-09 00:02:45 +03:00
|
|
|
|
2021-03-11 02:42:48 +03:00
|
|
|
dev-config.yaml:
|
|
|
|
go run ./hack/gendevconfig >dev-config.yaml
|
|
|
|
|
2020-10-03 00:42:23 +03:00
|
|
|
discoverycache:
|
|
|
|
$(MAKE) admin.kubeconfig
|
|
|
|
KUBECONFIG=admin.kubeconfig go run ./hack/gendiscoverycache
|
|
|
|
$(MAKE) generate
|
|
|
|
|
2019-12-11 15:06:19 +03:00
|
|
|
generate:
|
|
|
|
go generate ./...
|
|
|
|
|
2020-07-07 15:19:55 +03:00
|
|
|
image-aro: aro e2e.test
|
2019-12-22 20:25:31 +03:00
|
|
|
docker pull registry.access.redhat.com/ubi8/ubi-minimal
|
2021-11-16 21:29:01 +03:00
|
|
|
docker build --network=host --no-cache -f Dockerfile.aro -t $(ARO_IMAGE) .
|
2019-12-29 17:49:38 +03:00
|
|
|
|
2021-03-10 00:13:26 +03:00
|
|
|
image-aro-multistage:
|
2021-11-16 21:29:01 +03:00
|
|
|
docker build --network=host --no-cache -f Dockerfile.aro-multistage -t $(ARO_IMAGE) .
|
2021-03-10 00:13:26 +03:00
|
|
|
|
2021-08-13 19:47:17 +03:00
|
|
|
image-autorest:
|
2021-11-16 21:29:01 +03:00
|
|
|
docker build --network=host --no-cache --build-arg AUTOREST_VERSION="${AUTOREST_VERSION}" \
|
2021-08-13 19:47:17 +03:00
|
|
|
-f Dockerfile.autorest -t ${AUTOREST_IMAGE} .
|
|
|
|
|
2020-02-28 07:04:37 +03:00
|
|
|
image-fluentbit:
|
2021-11-16 21:29:01 +03:00
|
|
|
docker build --network=host --no-cache --build-arg VERSION=$(FLUENTBIT_VERSION) \
|
|
|
|
-f Dockerfile.fluentbit -t $(FLUENTBIT_IMAGE) .
|
2020-02-28 07:04:37 +03:00
|
|
|
|
2019-12-29 17:49:38 +03:00
|
|
|
image-proxy: proxy
|
|
|
|
docker pull registry.access.redhat.com/ubi8/ubi-minimal
|
2020-10-21 02:57:29 +03:00
|
|
|
docker build --no-cache -f Dockerfile.proxy -t ${RP_IMAGE_ACR}.azurecr.io/proxy:latest .
|
2020-03-09 17:40:34 +03:00
|
|
|
|
2020-03-10 18:02:18 +03:00
|
|
|
publish-image-aro: image-aro
|
2020-07-28 12:51:01 +03:00
|
|
|
docker push $(ARO_IMAGE)
|
|
|
|
ifeq ("${RP_IMAGE_ACR}-$(BRANCH)","arointsvc-master")
|
|
|
|
docker tag $(ARO_IMAGE) arointsvc.azurecr.io/aro:latest
|
|
|
|
docker push arointsvc.azurecr.io/aro:latest
|
|
|
|
endif
|
2020-03-09 17:40:34 +03:00
|
|
|
|
2021-03-10 00:13:26 +03:00
|
|
|
publish-image-aro-multistage: image-aro-multistage
|
|
|
|
docker push $(ARO_IMAGE)
|
|
|
|
ifeq ("${RP_IMAGE_ACR}-$(BRANCH)","arointsvc-master")
|
|
|
|
docker tag $(ARO_IMAGE) arointsvc.azurecr.io/aro:latest
|
|
|
|
docker push arointsvc.azurecr.io/aro:latest
|
|
|
|
endif
|
|
|
|
|
2021-08-13 19:47:17 +03:00
|
|
|
publish-image-autorest: image-autorest
|
|
|
|
docker push ${AUTOREST_IMAGE}
|
|
|
|
|
2020-03-09 17:40:34 +03:00
|
|
|
publish-image-fluentbit: image-fluentbit
|
2021-11-16 21:29:01 +03:00
|
|
|
docker push $(FLUENTBIT_IMAGE)
|
2020-03-09 17:40:34 +03:00
|
|
|
|
|
|
|
publish-image-proxy: image-proxy
|
|
|
|
docker push ${RP_IMAGE_ACR}.azurecr.io/proxy:latest
|
2019-12-29 17:49:38 +03:00
|
|
|
|
|
|
|
proxy:
|
2022-02-22 18:44:43 +03:00
|
|
|
go build -ldflags "-X github.com/Azure/ARO-RP/pkg/util/version.GitCommit=$(VERSION)" ./hack/proxy
|
2019-11-18 09:24:26 +03:00
|
|
|
|
2021-05-07 16:00:46 +03:00
|
|
|
run-portal:
|
2022-04-04 23:25:16 +03:00
|
|
|
go run -tags aro,containers_image_openpgp -ldflags "-X github.com/Azure/ARO-RP/pkg/util/version.GitCommit=$(VERSION)" ./cmd/aro portal
|
2021-05-07 16:00:46 +03:00
|
|
|
|
|
|
|
build-portal:
|
|
|
|
cd portal && npm install && npm run build
|
|
|
|
|
2020-10-08 03:04:39 +03:00
|
|
|
pyenv:
|
2021-07-02 13:36:25 +03:00
|
|
|
python3 -m venv pyenv
|
2020-10-08 03:04:39 +03:00
|
|
|
. pyenv/bin/activate && \
|
2021-02-08 15:43:39 +03:00
|
|
|
pip install -U pip && \
|
2021-11-05 20:45:59 +03:00
|
|
|
pip install autopep8 azdev azure-mgmt-loganalytics==0.2.0 colorama ruamel.yaml wheel && \
|
2021-08-06 16:50:20 +03:00
|
|
|
azdev setup -r . && \
|
|
|
|
sed -i -e "s|^dev_sources = $(PWD)$$|dev_sources = $(PWD)/python|" ~/.azure/config
|
2019-12-16 19:52:17 +03:00
|
|
|
|
2019-12-04 16:17:27 +03:00
|
|
|
secrets:
|
2020-02-27 16:34:46 +03:00
|
|
|
@[ "${SECRET_SA_ACCOUNT_NAME}" ] || ( echo ">> SECRET_SA_ACCOUNT_NAME is not set"; exit 1 )
|
2019-12-04 16:17:27 +03:00
|
|
|
rm -rf secrets
|
2020-11-20 20:04:51 +03:00
|
|
|
az storage blob download -n secrets.tar.gz -c secrets -f secrets.tar.gz --account-name ${SECRET_SA_ACCOUNT_NAME} >/dev/null
|
2020-02-27 16:35:25 +03:00
|
|
|
tar -xzf secrets.tar.gz
|
|
|
|
rm secrets.tar.gz
|
2019-12-04 16:17:27 +03:00
|
|
|
|
|
|
|
secrets-update:
|
2020-02-27 16:34:46 +03:00
|
|
|
@[ "${SECRET_SA_ACCOUNT_NAME}" ] || ( echo ">> SECRET_SA_ACCOUNT_NAME is not set"; exit 1 )
|
2020-02-27 16:35:25 +03:00
|
|
|
tar -czf secrets.tar.gz secrets
|
2022-04-05 03:45:08 +03:00
|
|
|
az storage blob upload -n secrets.tar.gz -c secrets -f secrets.tar.gz --overwrite --account-name ${SECRET_SA_ACCOUNT_NAME} >/dev/null
|
2020-02-27 16:34:46 +03:00
|
|
|
rm secrets.tar.gz
|
2019-12-04 16:17:27 +03:00
|
|
|
|
2021-03-22 17:48:48 +03:00
|
|
|
tunnel:
|
|
|
|
go run ./hack/tunnel $(shell az network public-ip show -g ${RESOURCEGROUP} -n rp-pip --query 'ipAddress')
|
|
|
|
|
2020-07-07 15:19:55 +03:00
|
|
|
e2e.test:
|
2022-02-22 18:44:43 +03:00
|
|
|
go test ./test/e2e -tags e2e,codec.safe -c -ldflags "-X github.com/Azure/ARO-RP/pkg/util/version.GitCommit=$(VERSION)" -o e2e.test
|
2020-07-07 15:19:55 +03:00
|
|
|
|
|
|
|
test-e2e: e2e.test
|
2022-03-11 03:53:31 +03:00
|
|
|
./e2e.test $(E2E_FLAGS)
|
2020-01-23 09:25:27 +03:00
|
|
|
|
2021-06-01 16:23:55 +03:00
|
|
|
test-go: generate build-all validate-go lint-go unit-test-go
|
2019-11-30 03:53:25 +03:00
|
|
|
|
2021-04-26 17:12:00 +03:00
|
|
|
validate-go:
|
2020-01-24 02:55:22 +03:00
|
|
|
gofmt -s -w cmd hack pkg test
|
|
|
|
go run ./vendor/golang.org/x/tools/cmd/goimports -w -local=github.com/Azure/ARO-RP cmd hack pkg test
|
|
|
|
go run ./hack/validate-imports cmd hack pkg test
|
2019-12-16 07:48:57 +03:00
|
|
|
go run ./hack/licenses
|
2019-11-30 03:53:25 +03:00
|
|
|
@[ -z "$$(ls pkg/util/*.go 2>/dev/null)" ] || (echo error: go files are not allowed in pkg/util, use a subpackage; exit 1)
|
|
|
|
@[ -z "$$(find -name "*:*")" ] || (echo error: filenames with colons are not allowed on Windows, please rename; exit 1)
|
2019-12-02 14:04:46 +03:00
|
|
|
@sha256sum --quiet -c .sha256sum || (echo error: client library is stale, please run make client; exit 1)
|
2021-04-26 17:12:00 +03:00
|
|
|
go vet ./...
|
2020-01-24 17:02:15 +03:00
|
|
|
go test -tags e2e -run ^$$ ./test/e2e/...
|
2019-11-30 03:53:25 +03:00
|
|
|
|
2022-02-03 04:54:12 +03:00
|
|
|
validate-fips:
|
|
|
|
hack/fips/validate-fips.sh
|
|
|
|
|
2021-04-26 17:12:00 +03:00
|
|
|
unit-test-go:
|
2022-04-04 23:25:16 +03:00
|
|
|
go run ./vendor/gotest.tools/gotestsum/main.go --format pkgname --junitfile report.xml -- -tags=aro,containers_image_openpgp -coverprofile=cover.out ./...
|
2019-11-21 05:32:34 +03:00
|
|
|
|
2020-11-14 03:07:17 +03:00
|
|
|
lint-go:
|
|
|
|
go run ./vendor/github.com/golangci/golangci-lint/cmd/golangci-lint run
|
2020-06-18 07:51:21 +03:00
|
|
|
|
2021-10-18 16:55:22 +03:00
|
|
|
test-python: pyenv az
|
2020-10-08 03:04:39 +03:00
|
|
|
. pyenv/bin/activate && \
|
2021-08-06 16:50:20 +03:00
|
|
|
azdev linter && \
|
|
|
|
azdev style && \
|
2020-04-03 20:01:00 +03:00
|
|
|
hack/format-yaml/format-yaml.py .pipelines
|
2019-12-13 21:09:53 +03:00
|
|
|
|
2020-03-12 05:45:32 +03:00
|
|
|
admin.kubeconfig:
|
|
|
|
hack/get-admin-kubeconfig.sh /subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/${RESOURCEGROUP}/providers/Microsoft.RedHatOpenShift/openShiftClusters/${CLUSTER} >admin.kubeconfig
|
2020-03-11 01:22:20 +03:00
|
|
|
|
2020-10-31 21:05:27 +03:00
|
|
|
vendor:
|
2021-05-19 16:08:23 +03:00
|
|
|
# See comments in the script for background on why we need it
|
2020-11-17 12:55:24 +03:00
|
|
|
hack/update-go-module-dependencies.sh
|
2020-10-31 21:05:27 +03:00
|
|
|
|
2022-02-03 04:54:12 +03:00
|
|
|
.PHONY: admin.kubeconfig aro az clean client deploy dev-config.yaml discoverycache generate image-aro image-aro-multistage image-fluentbit image-proxy lint-go runlocal-rp proxy publish-image-aro publish-image-aro-multistage publish-image-fluentbit publish-image-proxy secrets secrets-update e2e.test tunnel test-e2e test-go test-python vendor build-all validate-go unit-test-go coverage-go validate-fips
|