-
Notifications
You must be signed in to change notification settings - Fork 1
/
garden.yml
115 lines (100 loc) · 2.7 KB
/
garden.yml
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
kind: Deploy
name: postgres
type: helm
description: Deploy a Postgres database for Coder
spec:
chart:
name: postgresql
repo: https://charts.bitnami.com/bitnami
version: 12.6.6
values:
fullnameOverride: postgres
auth:
username: ${var.postgresUsername}
database: ${var.postgresDatabase}
password: ${var.postgresPassword}
primary:
readinessProbe:
successThreshold: 3 # Raised from a default of 1 to avoid startup flakiness
persistence:
enabled: false
---
kind: Deploy
name: coder-server
type: helm
description: Deplopy the Coder server
dependencies: [deploy.postgres]
variables:
hostname: coder.${providers[var.k8sProvider].outputs.default-hostname}
spec:
chart:
name: coder
repo: https://helm.coder.com/v2
version: "2.4.0"
values:
coder:
env:
- name: CODER_PG_CONNECTION_URL
value: postgres://${var.postgresUsername}:${var.postgresPassword}@postgres:5432/coder?sslmode=disable
- name: CODER_ACCESS_URL
value: ${var.protocol}://${var.hostname}
ingress:
enable: true
className: nginx
host: ${var.hostname}
---
kind: Build
name: coder
type: container
description: Build a Docker image with Coder installed that contains the example template
---
kind: Run
name: init-coder
type: container
description: Helper action for initializing Coder
dependencies: [build.coder, deploy.coder-server]
spec:
image: ${actions.build.coder.outputs.deploymentImageId}
command:
- /bin/sh
- -c
- |
coder login http://coder \
--first-user-email=${var.coderEmail} \
--first-user-password=${var.coderPassword} \
--first-user-username=${var.username} \
--first-user-trial \
--use-token-as-session \
coder template push \
--name=garden-workspace \
--create \
--yes \
--url=http://coder \
--variable \
namespace=${environment.namespace} \
--variable \
garden_auth_token=$CODER_GARDEN_TOKEN \
coder create ${var.username}/dev \
--template=kubernetes \
--yes \
--parameter cpu=2 \
--parameter memory=2 \
--parameter home_disk_size=10 \
env:
CODER_GARDEN_TOKEN: ${local.env.CODER_GARDEN_TOKEN}
---
kind: Deploy
name: coder
type: exec
description: Helper action that ensures Coder is initialized after deploying
dependencies: [run.init-coder]
variables:
hostname: coder.${providers[var.k8sProvider].outputs.default-hostname}
spec:
deployCommand:
- echo
- |
✨ Successfully deployed Coder to ${var.protocol}://${var.hostname} ✨
Visit your Coder instance at:
${var.protocol}://${var.hostname}
cleanupCommand: [echo, "Cleaning up..."]