forked from loft-sh/vcluster
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdevspace.yaml
185 lines (171 loc) · 4.31 KB
/
devspace.yaml
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
version: v2beta1
name: vcluster
# Variables used
vars:
# Make sure vcluster is the default namespace
DEVSPACE_FLAGS: "-n vcluster"
SYNCER_IMAGE: ghcr.io/loft-sh/loft-enterprise/dev-vcluster
# Images DevSpace will build for vcluster
images:
vcluster:
dockerfile: ./Dockerfile
image: ${SYNCER_IMAGE}
rebuildStrategy: ignoreContextChanges
target: builder
buildKit: {}
# Deployment used for vcluster
deployments:
vcluster-k0s:
helm:
releaseName: vcluster
chart:
name: ./charts/k0s
values:
service:
type: NodePort
serviceCIDR: $([ $1 == "dev" ] && vcluster get service-cidr || echo "null")
tolerations:
- operator: "Exists"
serviceAccount:
create: false
name: default
rbac:
clusterRole:
create: true
role:
extended: true
syncer:
image: ${SYNCER_IMAGE}
vcluster-k8s:
helm:
releaseName: vcluster
chart:
name: ./charts/k8s
values:
job:
enabled: false
service:
type: NodePort
serviceCIDR: $([ $1 == "dev" ] && vcluster get service-cidr || echo "null")
tolerations:
- operator: "Exists"
serviceAccount:
create: false
name: default
rbac:
clusterRole:
create: true
role:
extended: true
syncer:
image: ${SYNCER_IMAGE}
vcluster-k3s:
helm:
releaseName: vcluster
chart:
name: ./charts/k3s
values:
service:
type: NodePort
serviceCIDR: $([ $1 == "dev" ] && vcluster get service-cidr || echo "null")
tolerations:
- operator: "Exists"
serviceAccount:
create: false
name: default
rbac:
clusterRole:
create: true
role:
extended: true
syncer:
image: ${SYNCER_IMAGE}
# Dev Configuration for vcluster
dev:
vcluster:
imageSelector: ${SYNCER_IMAGE}
container: syncer
workingDir: /vcluster-dev
terminal:
command: "./devspace_start.sh"
ports:
- port: 2346:2345
sync:
- excludePaths:
- '**'
- '!/pkg'
- 'cmd/vclusterctl/cmd/charts'
- '!/cmd'
- '!/vendor'
- '!/hack'
- '!/go.mod'
- '!/go.sum'
- '!/devspace_start.sh'
- '!/manifests'
profiles:
- name: dev-hostpath-mapper
patches:
- op: remove
path: dev.vcluster.imageSelector
- op: remove
path: dev.vcluster.container
- op: add
path: dev.vcluster.labelSelector
value:
component: hostpath-mapper
merge:
deployments:
vcluster-k3s:
helm:
values:
hostpathMapper:
image: ${SYNCER_IMAGE}
enabled: true
dev: true
syncer:
livenessProbe:
enabled: false
readinessProbe:
enabled: false
extraArgs:
- start
- --tls-san=vcluster
# Pipelines used for vcluster
pipelines:
dev:
flags:
- name: distro
description: "Virtual cluster distribution to use"
default: "k3s"
type: string
run: |-
# Deploy the vcluster
run_pipelines deploy --set-flag distro=$(get_flag distro)
# Start dev mode
start_dev --all
deploy:
flags:
- name: distro
description: "Virtual cluster distribution to use"
default: "k3s"
type: string
run: |-
# Make sure pull secrets are there
ensure_pull_secrets --all
# Build the vcluster image
build_images --all
# Deploy the vcluster
if is_equal $(get_flag distro) k8s; then
kubectl apply -f ./hack/vcluster-certs.yaml -n ${DEVSPACE_NAMESPACE}
create_deployments vcluster-k8s
elif is_equal $(get_flag distro) k0s; then
create_deployments vcluster-k0s
else
create_deployments vcluster-k3s
fi
purge:
run: |-
# Purge the vcluster
run_default_pipeline purge
# Make sure the pvcs are deleted as well
kubectl delete pvc --all -n ${DEVSPACE_NAMESPACE}