@@ -32,6 +32,12 @@ variable "workspaces_namespace" {
32
32
default = " coder-workspaces"
33
33
}
34
34
35
+ variable "disk_size" {
36
+ type = number
37
+ description = " Disk size (__ GB)"
38
+ default = 10
39
+ }
40
+
35
41
provider "kubernetes" {
36
42
# Authenticate via ~/.kube/config or a Coder-specific ServiceAccount, depending on admin preferences
37
43
config_path = var. use_kubeconfig == true ? " ~/.kube/config" : null
@@ -63,7 +69,7 @@ resource "kubernetes_pod" "main" {
63
69
spec {
64
70
container {
65
71
name = " go"
66
- image = " mcr.microsoft.com/vscode/devcontainers/go:1 "
72
+ image = " codercom/enterprise-golang:ubuntu "
67
73
command = [" sh" , " -c" , coder_agent . go . init_script ]
68
74
security_context {
69
75
run_as_user = " 1000"
@@ -72,10 +78,20 @@ resource "kubernetes_pod" "main" {
72
78
name = " CODER_AGENT_TOKEN"
73
79
value = coder_agent. go . token
74
80
}
81
+ volume_mount {
82
+ mount_path = " /home/coder"
83
+ name = " go-home-directory"
84
+ }
85
+ }
86
+ volume {
87
+ name = " go-home-directory"
88
+ persistent_volume_claim {
89
+ claim_name = kubernetes_persistent_volume_claim. go-home-directory . metadata . 0 . name
90
+ }
75
91
}
76
92
container {
77
93
name = " java"
78
- image = " mcr.microsoft.com/vscode/devcontainers/ java"
94
+ image = " codercom/enterprise- java:ubuntu "
79
95
command = [" sh" , " -c" , coder_agent . java . init_script ]
80
96
security_context {
81
97
run_as_user = " 1000"
@@ -84,10 +100,20 @@ resource "kubernetes_pod" "main" {
84
100
name = " CODER_AGENT_TOKEN"
85
101
value = coder_agent. java . token
86
102
}
103
+ volume_mount {
104
+ mount_path = " /home/coder"
105
+ name = " java-home-directory"
106
+ }
107
+ }
108
+ volume {
109
+ name = " java-home-directory"
110
+ persistent_volume_claim {
111
+ claim_name = kubernetes_persistent_volume_claim. java-home-directory . metadata . 0 . name
112
+ }
87
113
}
88
114
container {
89
115
name = " ubuntu"
90
- image = " mcr.microsoft.com/vscode/devcontainers/ base:ubuntu"
116
+ image = " codercom/enterprise- base:ubuntu"
91
117
command = [" sh" , " -c" , coder_agent . ubuntu . init_script ]
92
118
security_context {
93
119
run_as_user = " 1000"
@@ -96,6 +122,62 @@ resource "kubernetes_pod" "main" {
96
122
name = " CODER_AGENT_TOKEN"
97
123
value = coder_agent. ubuntu . token
98
124
}
125
+ volume_mount {
126
+ mount_path = " /home/coder"
127
+ name = " ubuntu-home-directory"
128
+ }
129
+ }
130
+ volume {
131
+ name = " ubuntu-home-directory"
132
+ persistent_volume_claim {
133
+ claim_name = kubernetes_persistent_volume_claim. ubuntu-home-directory . metadata . 0 . name
134
+ }
135
+ }
136
+
137
+ }
138
+ }
139
+
140
+ resource "kubernetes_persistent_volume_claim" "go-home-directory" {
141
+ metadata {
142
+ name = " home-coder-go-${ data . coder_workspace . me . owner } -${ data . coder_workspace . me . name } "
143
+ namespace = var. workspaces_namespace
144
+ }
145
+ spec {
146
+ access_modes = [" ReadWriteOnce" ]
147
+ resources {
148
+ requests = {
149
+ storage = " ${ var . disk_size } Gi"
150
+ }
151
+ }
152
+ }
153
+ }
154
+
155
+ resource "kubernetes_persistent_volume_claim" "java-home-directory" {
156
+ metadata {
157
+ name = " home-coder-java-${ data . coder_workspace . me . owner } -${ data . coder_workspace . me . name } "
158
+ namespace = var. workspaces_namespace
159
+ }
160
+ spec {
161
+ access_modes = [" ReadWriteOnce" ]
162
+ resources {
163
+ requests = {
164
+ storage = " ${ var . disk_size } Gi"
165
+ }
166
+ }
167
+ }
168
+ }
169
+
170
+ resource "kubernetes_persistent_volume_claim" "ubuntu-home-directory" {
171
+ metadata {
172
+ name = " home-coder-ubuntu-${ data . coder_workspace . me . owner } -${ data . coder_workspace . me . name } "
173
+ namespace = var. workspaces_namespace
174
+ }
175
+ spec {
176
+ access_modes = [" ReadWriteOnce" ]
177
+ resources {
178
+ requests = {
179
+ storage = " ${ var . disk_size } Gi"
180
+ }
99
181
}
100
182
}
101
183
}
0 commit comments