/
githubmirror
/
etcd
Обзор
Документация
Войти
/
githubmirror
/
etcd
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/antithesis/Makefile
101 строка
4 KB
Nont
Replace math/rand[/v2] at antithesis etcd server build time
27 июл 2026, 05:17
27 июл 2026, 05:17
b8477b4
Код
Авторство
О чём код?
ANTITHESIS_ROOT :=$(dir $(realpath $(lastword $(MAKEFILE_LIST)))) REPOSITORY_ROOT := $(shell git rev-parse --show-toplevel) USER_ID := $(shell id -u) GROUP_ID := $(shell id -g) ARCH ?= $(shell go env GOARCH) REF = main IMAGE_TAG = latest CFG_NODE_COUNT ?= 3 .PHONY: antithesis-build-client-docker-image antithesis-build-client-docker-image: validate-node-count # This is a release image using go build without our tooling. Using the # version defined in .go-version is the correct image tag. docker build \ --build-arg GO_IMAGE_TAG=$(shell cat $(REPOSITORY_ROOT)/.go-version) \ --file $(ANTITHESIS_ROOT)/test-template/Dockerfile \ --tag etcd-client:latest \ $(REPOSITORY_ROOT) .PHONY: antithesis-build-etcd-image antithesis-build-etcd-image: # Use the Workspace Go version from the go directive. This is the base image # later in the Dockerfile, we'll set the correct toolchain. docker build \ --build-arg GO_IMAGE_TAG=$(shell go work edit -json | jq .Go) \ --build-arg REF=$(REF) \ --tag etcd-server:latest \ -f ./server/Dockerfile \ $(ANTITHESIS_ROOT) .PHONY: antithesis-build-etcd-image-release-3.4 antithesis-build-etcd-image-release-3.4: REF=release-3.4 antithesis-build-etcd-image-release-3.4: antithesis-build-etcd-image .PHONY: antithesis-build-etcd-image-release-3.5 antithesis-build-etcd-image-release-3.5: REF=release-3.5 antithesis-build-etcd-image-release-3.5: antithesis-build-etcd-image .PHONY: antithesis-build-etcd-image-release-3.6 antithesis-build-etcd-image-release-3.6: REF=release-3.6 antithesis-build-etcd-image-release-3.6: antithesis-build-etcd-image .PHONY: antithesis-build-etcd-image-main antithesis-build-etcd-image-main: REF=main antithesis-build-etcd-image-main: antithesis-build-etcd-image .PHONY: antithesis-build-config-image antithesis-build-config-image: validate-node-count docker build -f config/Dockerfile config -t etcd-config:latest \ --build-arg IMAGE_TAG=$(IMAGE_TAG) \ --build-arg NODE_COUNT=$(CFG_NODE_COUNT) .PHONY: antithesis-docker-compose-up antithesis-docker-compose-up: validate-node-count export USER_ID=$(USER_ID) && export GROUP_ID=$(GROUP_ID) && \ docker compose -f config/docker-compose-$(CFG_NODE_COUNT)-node.yml up .PHONY: antithesis-run-container-traffic antithesis-run-container-traffic: validate-node-count export USER_ID=$(USER_ID) && export GROUP_ID=$(GROUP_ID) && \ docker compose -f config/docker-compose-$(CFG_NODE_COUNT)-node.yml exec client /opt/antithesis/test/v1/robustness/singleton_driver_traffic .PHONY: antithesis-run-container-validation antithesis-run-container-validation: validate-node-count export USER_ID=$(USER_ID) && export GROUP_ID=$(GROUP_ID) && \ docker compose -f config/docker-compose-$(CFG_NODE_COUNT)-node.yml exec client /opt/antithesis/test/v1/robustness/finally_validation .PHONY: antithesis-run-local-traffic antithesis-run-local-traffic: export ETCD_ROBUSTNESS_DATA_PATHS=/tmp/etcddata0,/tmp/etcddata1,/tmp/etcddata2 && export ETCD_ROBUSTNESS_REPORT_PATH=report && export ETCD_ROBUSTNESS_ENDPOINTS=127.0.0.1:12379,127.0.0.1:22379,127.0.0.1:32379 && \ go run --race ./test-template/robustness/traffic/main.go .PHONY: antithesis-run-local-validation antithesis-run-local-validation: export ETCD_ROBUSTNESS_DATA_PATHS=/tmp/etcddata0,/tmp/etcddata1,/tmp/etcddata2 && export ETCD_ROBUSTNESS_REPORT_PATH=report && export ETCD_ROBUSTNESS_ENDPOINTS=127.0.0.1:12379,127.0.0.1:22379,127.0.0.1:32379 && \ go run --race ./test-template/robustness/finally/main.go .PHONY: antithesis-clean antithesis-clean: validate-node-count export USER_ID=$(USER_ID) && export GROUP_ID=$(GROUP_ID) && \ docker compose -f config/docker-compose-$(CFG_NODE_COUNT)-node.yml down --remove-orphans rm -rf /tmp/etcddata0 /tmp/etcddata1 /tmp/etcddata2 /tmp/etcdreport .PHONY: validate-node-count validate-node-count: @if [ "$(CFG_NODE_COUNT)" != "1" ] && [ "$(CFG_NODE_COUNT)" != "3" ]; then \ echo "CFG_NODE_COUNT must be either 1 or 3 (got $(CFG_NODE_COUNT))"; \ exit 1; \ fi REQUIRED_K8S_TOOLS := kubectl kind .PHONY: check-k8s-tools check-k8s-tools: @for tool in $(REQUIRED_K8S_TOOLS); do \ if ! command -v $$tool >/dev/null 2>&1; then \ echo "Error: '$$tool' is missing. Please install it before continuing." >&2; \ exit 1; \ fi \ done