-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
129 lines (114 loc) · 8.74 KB
/
Makefile
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
SHELL := /bin/sh
help: ## Usage: 'make <target>' where target is: single, up, down, all, single, destroy, clean.
@egrep '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
destroy: ## Destroys k3s clusters
@k3d cluster delete --all
clean: ## Destroys clusters and cleans Terraform leftovers
@k3d cluster delete --all && rm -rf .terraform* terraform.*
up: ## Starts all k3s clusters
@k3d cluster start k3d --all
down: ## Stops all k3s clusters
@k3d cluster stop k3d --all
cluster: clean ## Provisions single k3s cluster
@k3d cluster create \
--servers 1 \
--api-port host.k3d.internal:6443 \
--image rancher/k3s:v1.24.3-k3s1 \
--token superSecretToken \
--timeout 60s \
--port 443:443@loadbalancer:0 \
--k3s-arg "--cluster-cidr=10.1.0.0/16@server:0" \
--k3s-arg "--service-cidr=10.0.0.0/16@server:0" \
--k3s-arg "--etcd-disable-snapshots@server:0" \
--k3s-arg "--disable=traefik@server:0" \
--k3s-arg "--disable=network-policy@server:0" \
--k3s-arg "--disable=cloud-controller@server:0" \
--kubeconfig-update-default \
--wait single; \
cluster-tf: ## Applies module 'cluster-single'
@terraform init -upgrade \
&& terraform apply -parallelism=100 -auto-approve -target=module.cluster-single
cluster-all: clean cluster cluster-tf ## Provisions single k3s cluster, runs Terraform and installs ArgoCD
.ONESHELL:
multi-cluster: clean ## Create k3s multi-cluster setup, more info https://github.com/k3d-io/k3d/discussions/1015
@k3d cluster create \
--servers 1 \
--api-port host.k3d.internal:64432 \
--network multicluster \
--image rancher/k3s:v1.24.3-k3s1 \
--token superSecretToken \
--timeout 60s \
--port 4432:443@loadbalancer:0 \
--k3s-arg "--cluster-cidr=10.1.0.0/16@server:0" \
--k3s-arg "--service-cidr=10.0.0.0/16@server:0" \
--k3s-arg "--etcd-disable-snapshots@server:0" \
--k3s-arg "--disable=traefik@server:0" \
--k3s-arg "--disable=network-policy@server:0" \
--k3s-arg "--disable=cloud-controller@server:0" \
--kubeconfig-update-default \
--wait dev; \
\
k3d cluster create \
--servers 1 \
--api-port host.k3d.internal:64433 \
--network multicluster \
--image rancher/k3s:v1.24.3-k3s1 \
--token superSecretToken \
--timeout 60s \
--port 4433:443@loadbalancer:0 \
--k3s-arg "--cluster-cidr=10.1.0.0/16@server:0" \
--k3s-arg "--service-cidr=10.0.0.0/16@server:0" \
--k3s-arg "--etcd-disable-snapshots@server:0" \
--k3s-arg "--disable=traefik@server:0" \
--k3s-arg "--disable=network-policy@server:0" \
--k3s-arg "--disable=cloud-controller@server:0" \
--kubeconfig-update-default \
--wait stage; \
\
k3d cluster create \
--servers 1 \
--api-port host.k3d.internal:64434 \
--network multicluster \
--image rancher/k3s:v1.24.3-k3s1 \
--token superSecretToken \
--timeout 60s \
--port 4434:443@loadbalancer:0 \
--k3s-arg "--cluster-cidr=10.1.0.0/16@server:0" \
--k3s-arg "--service-cidr=10.0.0.0/16@server:0" \
--k3s-arg "--etcd-disable-snapshots@server:0" \
--k3s-arg "--disable=traefik@server:0" \
--k3s-arg "--disable=network-policy@server:0" \
--k3s-arg "--disable=cloud-controller@server:0" \
--kubeconfig-update-default \
--wait prod; \
\
k3d cluster create \
--servers 1 \
--api-port host.k3d.internal:64431 \
--network multicluster \
--image rancher/k3s:v1.24.3-k3s1 \
--token superSecretToken \
--timeout 60s \
--port 4431:443@loadbalancer:0 \
--k3s-arg "--cluster-cidr=10.1.0.0/16@server:0" \
--k3s-arg "--service-cidr=10.0.0.0/16@server:0" \
--k3s-arg "--etcd-disable-snapshots@server:0" \
--k3s-arg "--disable=traefik@server:0" \
--k3s-arg "--disable=network-policy@server:0" \
--k3s-arg "--disable=cloud-controller@server:0" \
--kubeconfig-update-default \
--wait gitops \
cluster-dev: ## Applies module 'cluster-dev'
@terraform init -upgrade \
&& terraform apply -parallelism=100 -auto-approve -target=module.cluster-dev
cluster-stage: ## Applies module 'cluster-stage'
@terraform init -upgrade \
&& terraform apply -parallelism=100 -auto-approve -target=module.cluster-stage
cluster-prod: ## Applies module 'cluster-prod'
@terraform init -upgrade \
&& terraform apply -parallelism=100 -auto-approve -target=module.cluster-prod
cluster-gitops: ## Applies module 'cluster-gitops'
@terraform init -upgrade \
&& terraform apply -parallelism=100 -auto-approve -target=module.cluster-gitops
dev-clusters: cluster-dev cluster-stage cluster-prod cluster-gitops ## Applies all dev cluster modules
multi-all: clean multi-cluster dev-clusters ## Create k3s multi-cluster setup, runs Terarform and installs ArgoCD