-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
100 lines (71 loc) · 2.4 KB
/
Makefile
File metadata and controls
100 lines (71 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
NODEDIAL_VERSION = 1.0.0
DOCKER_TAG = ctchoi/nodedial
ROOT_LOCATION = /var/lib/nodedial
JAR_LOCATION = $(ROOT_LOCATION)-jars
####################
## Build commands ##
####################
clean:
@sbt clean
compile: clean
@sbt compile
build: clean
@sbt assembly
build-client:
@sbt "project client" clean assembly
build-server:
@sbt "project server" clean assembly
.PHONY: docker
docker:
@DOCKER_BUILDKIT=1 docker build \
--build-arg SERVER_JAR_FILE=$(shell find . -name "NodeDialServer-assembly-*.jar") \
--build-arg CLIENT_JAR_FILE=$(shell find . -name "NodeDialClient-assembly-*.jar") \
--file docker/Dockerfile \
--tag $(DOCKER_TAG):latest \
--tag $(DOCKER_TAG):$(NODEDIAL_VERSION) \
.
docker-push:
docker push $(DOCKER_TAG):$(NODEDIAL_VERSION)
docker push $(DOCKER_TAG):latest
all: build docker
## NOTE: sudo permissions required to install global client and server instance
install:
@sudo mkdir -p $(JAR_LOCATION)
@sudo rm -f $(JAR_LOCATION)/nodedial-client.jar
@sudo cp -f $(shell find . -name "NodeDialClient-assembly-*.jar") $(JAR_LOCATION)/nodedial-client.jar
@sudo cp -f docker/run-client-local.sh /usr/local/bin/nodedial
@sudo rm -f $(JAR_LOCATION)/nodedial-server.jar
@sudo cp -f $(shell find . -name "NodeDialServer-assembly-*.jar") $(JAR_LOCATION)/nodedial-server.jar
@sudo cp -f docker/run-server.sh /usr/local/bin/nodedial-app
##################
## Run Commands ##
##################
run-server:
@docker logs -f $(shell docker run \
-d \
-e SELF_IP='0.0.0.0' \
-p 8080:8080 $(DOCKER_TAG):latest \
)
log-server:
@docker logs -f $(shell docker ps -q --filter ancestor="$(DOCKER_TAG):latest")
exec-server:
@docker exec -it $(shell docker ps -q --filter ancestor="$(DOCKER_TAG):latest") sh
kill-server:
@docker stop $(shell docker ps -q --filter ancestor="$(DOCKER_TAG):latest")
######################
## Cluster Commands ##
######################
kube-headless:
@kubectl create -f kube/nodedial-headless.yaml
kube-statefulset:
@kubectl create -f kube/nodedial-statefulset.yaml
kube-ns:
@kubectl get all -n nodedial-ns
kube-ns-create:
@kubectl create namespace nodedial-ns
kube-clear:
@kubectl delete statefulset ndb -n nodedial-ns
@kubectl delete service nhs -n nodedial-ns
@kubectl delete pvc nodedial-volume-claim-ndb-0 -n nodedial-ns
@kubectl delete pvc nodedial-volume-claim-ndb-1 -n nodedial-ns
@kubectl delete pvc nodedial-volume-claim-ndb-2 -n nodedial-ns