-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile.tools
More file actions
152 lines (125 loc) · 5.24 KB
/
Makefile.tools
File metadata and controls
152 lines (125 loc) · 5.24 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
SHELL=/bin/bash
PROM_VERSION=2.31.1
AM_VERSION=44f8adc06af5101ad64bd8b9c8b18273f2922051
JSONNET_VERSION=0.18.0
KIND_VERSION?=latest
GIT_LFS_VERSION=2.5.2
GOLANG_VERSION?=1.20
KREW_PLUGINS=$(shell cat $(CURDIR)/packages/kubernetes-krew-plugins)
LOCALBIN=/usr/local/bin
GOPATH=$(HOME)/Projects
export GOROOT
GOBIN=$(GOPATH)/bin
.PHONY: all
all: golang \
$(LOCALBIN)/speedtest \
$(LOCALBIN)/icdiff \
$(LOCALBIN)/git-icdiff \
$(LOCALBIN)/git-lfs \
tuptime \
$(LOCALBIN)/kubectl \
$(LOCALBIN)/kind \
kubectl-plugins \
$(LOCALBIN)/scw \
$(HOME)/.local/bin/ggshield \
$(GOBIN)/promtool \
$(GOBIN)/amtool \
$(GOBIN)/jsonnet \
$(GOBIN)/jb \
$(GOBIN)/kubeseal \
$(GOBIN)/yamlfmt ## Install tools
$(LOCALBIN)/speedtest:
sudo wget -O $@ https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
sudo chmod +x $@
$(LOCALBIN)/icdiff:
sudo wget -O $@ https://raw.githubusercontent.com/jeffkaufman/icdiff/master/icdiff
sudo chmod +x $@
$(LOCALBIN)/git-icdiff:
sudo wget -O $@ https://raw.githubusercontent.com/jeffkaufman/icdiff/master/git-icdiff
sudo chmod +x $@
$(LOCALBIN)/git-lfs:
wget "https://github.com/git-lfs/git-lfs/releases/download/v$(GIT_LFS_VERSION)/git-lfs-linux-amd64-v$(GIT_LFS_VERSION).tar.gz" -O "/tmp/git-lfs-linux-amd64-v$(GIT_LFS_VERSION).tar.gz"
mkdir -p /tmp/git-lfs
tar -xvf "/tmp/git-lfs-linux-amd64-v${GIT_LFS_VERSION}.tar.gz" -C /tmp/git-lfs
sudo /tmp/git-lfs/install.sh
.PHONY: tuptime
tuptime: /usr/bin/tuptime /etc/systemd/system/tuptime-cron.service /etc/systemd/system/tuptime-cron.timer
/usr/bin/tuptime:
sudo wget -O $@ https://raw.githubusercontent.com/rfmoz/tuptime/master/src/tuptime
sudo chmod +x $@
/etc/systemd/system/tuptime-cron.service: /usr/bin/tuptime
sudo wget -O $@ https://raw.githubusercontent.com/rfrail3/tuptime/master/src/systemd/tuptime-cron.service
/etc/systemd/system/tuptime-cron.timer: /etc/systemd/system/tuptime-cron.service
sudo wget -O $@ https://raw.githubusercontent.com/rfrail3/tuptime/master/src/systemd/tuptime-cron.timer
sudo systemctl daemon-reload
sudo systemctl enable tuptime-cron.timer
$(LOCALBIN)/kubectl:
curl -LO "https://dl.k8s.io/release/$$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
rm kubectl
$(LOCALBIN)/kind:
curl -Lo /tmp/kind https://kind.sigs.k8s.io/dl/$(KIND_VERSION)/kind-linux-amd64
chmod +x /tmp/kind
sudo mv -u /tmp/kind $(LOCALBIN)/kind
$(HOME)/.krew/bin/kubectl-krew: $(LOCALBIN)/kubectl
rm -rf "/tmp/krew"
mkdir -p "/tmp/krew"
wget https://github.com/kubernetes-sigs/krew/releases/latest/download/krew-linux_amd64.tar.gz -O "/tmp/krew/krew.tar.gz"
tar -C "/tmp/krew" -xzf /tmp/krew/krew.tar.gz
/tmp/krew/krew-linux_amd64 install krew
.PHONY: kubectl-plugins
kubectl-plugins: $(HOME)/.krew/bin/kubectl-krew $(LOCALBIN)/kubectl
$(LOCALBIN)/kubectl krew install $(KREW_PLUGINS)
$(MAKE) /usr/local/bin/kubens
$(MAKE) /usr/local/bin/kubectx
/usr/local/bin/kubens:
sudo ln -s $(HOME)/.krew/bin/kubectl-ns /usr/local/bin/kubens
/usr/local/bin/kubectx:
sudo ln -s $(HOME)/.krew/bin/kubectl-ctx /usr/local/bin/kubectx
$(HOME)/.local/bin/ggshield:
pip install ggshield
.PHONY: golang
golang: /usr/local/go$(GOLANG_VERSION) $(GOPATH)
$(GOPATH):
mkdir -p "$(GOPATH)"
/usr/local/go$(GOLANG_VERSION):
rm -rf /tmp/golang$(GOLANG_VERSION)
mkdir /tmp/golang$(GOLANG_VERSION)
wget "https://golang.org/dl/go$(GOLANG_VERSION).linux-amd64.tar.gz" -O "/tmp/golang$(GOLANG_VERSION)/go$(GOLANG_VERSION).linux-amd64.tar.gz"
tar -C "/tmp/golang$(GOLANG_VERSION)" -xzf "/tmp/golang$(GOLANG_VERSION)/go$(GOLANG_VERSION).linux-amd64.tar.gz"
mv "/tmp/golang$(GOLANG_VERSION)/go" "/tmp/golang$(GOLANG_VERSION)/go$(GOLANG_VERSION)"
sudo mv -n "/tmp/golang$(GOLANG_VERSION)/go$(GOLANG_VERSION)" "/usr/local/"
-sudo unlink "/usr/local/go"
sudo ln -snf "/usr/local/go$(GOLANG_VERSION)" "/usr/local/go"
.PHONY: promtool
promtool: $(GOBIN)/promtool
$(GOBIN)/promtool:
# go install github.com/prometheus/prometheus/cmd/promtool@$(PROM_VERSION)
rm -rf /tmp/prometheus
mkdir -p /tmp/prometheus
wget https://github.com/prometheus/prometheus/releases/download/v$(PROM_VERSION)/prometheus-$(PROM_VERSION).linux-amd64.tar.gz -O "/tmp/prometheus/prometheus-$(PROM_VERSION).linux-amd64.tar.gz"
tar -C "/tmp/prometheus" -xzf "/tmp/prometheus/prometheus-$(PROM_VERSION).linux-amd64.tar.gz"
mv -u "/tmp/prometheus/prometheus-$(PROM_VERSION).linux-amd64/promtool" "$(GOBIN)/promtool"
chmod +x "$(GOBIN)/promtool"
.PHONY: amtool
amtool: $(GOBIN)/amtool
$(GOBIN)/amtool: golang
go install github.com/prometheus/alertmanager/cmd/amtool@$(AM_VERSION)
.PHONY: jsonnet
jsonnet: $(GOBIN)/jsonnet
$(GOBIN)/jsonnet: golang
go install github.com/google/go-jsonnet/cmd/jsonnet@v$(JSONNET_VERSION)
go install github.com/google/go-jsonnet/cmd/jsonnetfmt@v$(JSONNET_VERSION)
go install github.com/google/go-jsonnet/cmd/jsonnet-lint@v$(JSONNET_VERSION)
.PHONY: jb
jb: $(GOBIN)/jb
$(GOBIN)/jb: golang
go install -a github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@latest
.PHONY: kubeseal
kubeseal: $(GOBIN)/kubeseal
$(GOBIN)/kubeseal: golang
go install -a github.com/bitnami-labs/sealed-secrets/cmd/kubeseal@latest
.PHONY: yamlfmt
yamlfmt: $(GOBIN)/yamlfmt
$(GOBIN)/yamlfmt: golang
go install -a github.com/devopyio/yamlfmt@latest