Skip to content

Commit 885c527

Browse files
authored
Merge pull request #19 from persys-dev/Scheduler-improvements-b1
feat(scheduler): add control-plane mode state machine, comprehensive drift remediation, and resilient Vault TLS rotation
2 parents 1b627c4 + 5e4e8af commit 885c527

39 files changed

Lines changed: 3957 additions & 2733 deletions

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
.cache
12
.idea
23
*.log
34
*.toml
@@ -9,4 +10,6 @@ terraform.tfvars
910
**/bin/
1011
api-gateway/config.toml
1112
prow/internal/scheduler/reconcile.txt
12-
certs/
13+
certs/
14+
vault-mtls-mock/certs-runtime/
15+
vault-mtls-mock/

CHANGELOG.md

Lines changed: 0 additions & 400 deletions
This file was deleted.

Makefile

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
SHELL := /usr/bin/env bash
2+
.SHELLFLAGS := -eu -o pipefail -c
3+
4+
GO ?= go
5+
ROOT_BIN_DIR ?= bin
6+
GOCACHE ?= $(CURDIR)/.cache/go-build
7+
GOMODCACHE ?= $(CURDIR)/.cache/go-mod
8+
GO_ENV = GOCACHE="$(GOCACHE)" GOMODCACHE="$(GOMODCACHE)"
9+
10+
SERVICES := compute-agent persys-scheduler persysctl persys-gateway persys-federation persys-forgery persys-operator vault-mtls-mock
11+
12+
compute-agent_DIR := compute-agent
13+
compute-agent_PKG := ./cmd/agent
14+
compute-agent_BIN := persys-agent
15+
16+
persys-scheduler_DIR := persys-scheduler
17+
persys-scheduler_PKG := ./cmd/scheduler
18+
persys-scheduler_BIN := persys-scheduler
19+
20+
persysctl_DIR := persysctl
21+
persysctl_PKG := ./main.go
22+
persysctl_BIN := persysctl
23+
24+
persys-gateway_DIR := persys-gateway
25+
persys-gateway_PKG := ./cmd
26+
persys-gateway_BIN := persys-api
27+
28+
persys-federation_DIR := persys-federation
29+
persys-federation_PKG := ./cmd/main.go
30+
persys-federation_BIN := persys-federation
31+
32+
persys-forgery_DIR := persys-forgery
33+
persys-forgery_PKG := ./cmd/main.go
34+
persys-forgery_BIN := persys-forgery
35+
36+
persys-operator_DIR := persys-operator
37+
persys-operator_PKG := ./cmd/main.go
38+
persys-operator_BIN := persys-operator
39+
40+
vault-mtls-mock_DIR := vault-mtls-mock
41+
vault-mtls-mock_PKG := ./main.go
42+
vault-mtls-mock_BIN := vault-mtls-mock
43+
44+
.PHONY: help init certs deps build build-all test test-all clean clean-all $(addprefix build-,$(SERVICES)) $(addprefix test-,$(SERVICES)) $(addprefix clean-,$(SERVICES))
45+
46+
help:
47+
@echo "Persys Cloud Root Makefile"
48+
@echo ""
49+
@echo "Targets:"
50+
@echo " make init - bootstrap project (deps + certs + build-all)"
51+
@echo " make certs - generate development certificates"
52+
@echo " make deps - download go dependencies for all services"
53+
@echo " make build-all - build all services into $(ROOT_BIN_DIR)/"
54+
@echo " make build SERVICE=<name> - build one service into $(ROOT_BIN_DIR)/"
55+
@echo " make build-<service> - build one service (shortcut)"
56+
@echo " make test-all - run tests for all services"
57+
@echo " make test SERVICE=<name> - run tests for one service"
58+
@echo " make clean-all - remove root and service bin artifacts"
59+
@echo " make clean SERVICE=<name> - clean one service"
60+
@echo ""
61+
@echo "Services:"
62+
@for service in $(SERVICES); do echo " - $$service"; done
63+
64+
init:
65+
@./init.sh
66+
67+
certs:
68+
@./generate-certs.sh
69+
70+
deps:
71+
@mkdir -p "$(ROOT_BIN_DIR)"
72+
@mkdir -p "$(GOCACHE)" "$(GOMODCACHE)"
73+
@for service in $(SERVICES); do \
74+
echo "==> Downloading dependencies for $$service"; \
75+
dir_var="$${service}_DIR"; \
76+
service_dir="$${!dir_var}"; \
77+
( cd "$$service_dir" && $(GO_ENV) $(GO) mod download ); \
78+
done
79+
80+
build:
81+
@if [[ -z "$${SERVICE:-}" ]]; then \
82+
echo "Usage: make build SERVICE=<$(SERVICES)>"; \
83+
exit 1; \
84+
fi
85+
@$(MAKE) --no-print-directory "build-$${SERVICE}"
86+
87+
build-all: $(addprefix build-,$(SERVICES))
88+
89+
define SERVICE_BUILD_TEMPLATE
90+
build-$(1):
91+
@mkdir -p "$(ROOT_BIN_DIR)"
92+
@mkdir -p "$(GOCACHE)" "$(GOMODCACHE)"
93+
@echo "==> Building $(1)"
94+
@cd "$$($(1)_DIR)" && $(GO_ENV) $(GO) build -v -o "../$(ROOT_BIN_DIR)/$$($(1)_BIN)" "$$($(1)_PKG)"
95+
endef
96+
97+
$(foreach service,$(SERVICES),$(eval $(call SERVICE_BUILD_TEMPLATE,$(service))))
98+
99+
test:
100+
@if [[ -z "$${SERVICE:-}" ]]; then \
101+
echo "Usage: make test SERVICE=<$(SERVICES)>"; \
102+
exit 1; \
103+
fi
104+
@$(MAKE) --no-print-directory "test-$${SERVICE}"
105+
106+
test-all: $(addprefix test-,$(SERVICES))
107+
108+
define SERVICE_TEST_TEMPLATE
109+
test-$(1):
110+
@echo "==> Testing $(1)"
111+
@mkdir -p "$(GOCACHE)" "$(GOMODCACHE)"
112+
@cd "$$($(1)_DIR)" && $(GO_ENV) $(GO) test -v ./...
113+
endef
114+
115+
$(foreach service,$(SERVICES),$(eval $(call SERVICE_TEST_TEMPLATE,$(service))))
116+
117+
clean:
118+
@if [[ -z "$${SERVICE:-}" ]]; then \
119+
echo "Usage: make clean SERVICE=<$(SERVICES)>"; \
120+
exit 1; \
121+
fi
122+
@$(MAKE) --no-print-directory "clean-$${SERVICE}"
123+
124+
clean-all: $(addprefix clean-,$(SERVICES))
125+
@echo "==> Removing root binaries"
126+
@rm -rf "$(ROOT_BIN_DIR)"
127+
128+
define SERVICE_CLEAN_TEMPLATE
129+
clean-$(1):
130+
@echo "==> Cleaning $(1)"
131+
@rm -f "$(ROOT_BIN_DIR)/$$($(1)_BIN)"
132+
@rm -rf "$$($(1)_DIR)/bin"
133+
endef
134+
135+
$(foreach service,$(SERVICES),$(eval $(call SERVICE_CLEAN_TEMPLATE,$(service))))

compute-agent

0 commit comments

Comments
 (0)