@@ -6,7 +6,7 @@ terraform {
6
6
}
7
7
kubernetes = {
8
8
source = " hashicorp/kubernetes"
9
- version = " ~> 2.10 "
9
+ version = " ~> 2.12.1 "
10
10
}
11
11
}
12
12
}
@@ -29,7 +29,7 @@ variable "workspaces_namespace" {
29
29
type = string
30
30
sensitive = true
31
31
description = " The namespace to create workspaces in (must exist prior to creating workspaces)"
32
- default = " coder-workspaces "
32
+ default = " coder-workspace "
33
33
}
34
34
35
35
variable "disk_size" {
@@ -45,19 +45,25 @@ provider "kubernetes" {
45
45
46
46
data "coder_workspace" "me" {}
47
47
48
- resource "coder_agent" "go " {
48
+ resource "coder_agent" "main " {
49
49
os = " linux"
50
50
arch = " amd64"
51
- }
51
+ startup_script = << EOT
52
+ #!/bin/bash
52
53
53
- resource "coder_agent" "java" {
54
- os = " linux"
55
- arch = " amd64"
54
+ # install and start code-server
55
+ curl -fsSL https://code-server.dev/install.sh | sh | tee code-server-install.log
56
+ code-server --auth none --port 13337 | tee code-server-install.log &
57
+ EOT
56
58
}
57
59
58
- resource "coder_agent" "ubuntu" {
59
- os = " linux"
60
- arch = " amd64"
60
+ # code-server
61
+ resource "coder_app" "code-server" {
62
+ agent_id = coder_agent. main . id
63
+ name = " code-server"
64
+ icon = " /icon/code.svg"
65
+ url = " http://localhost:13337?folder=/home/coder"
66
+ relative_path = true
61
67
}
62
68
63
69
resource "kubernetes_pod" "main" {
@@ -67,92 +73,36 @@ resource "kubernetes_pod" "main" {
67
73
namespace = var. workspaces_namespace
68
74
}
69
75
spec {
70
- container {
71
- name = " go"
72
- image = " codercom/enterprise-golang:ubuntu"
73
- command = [" sh" , " -c" , coder_agent . go . init_script ]
74
- security_context {
75
- run_as_user = " 1000"
76
- }
77
- env {
78
- name = " CODER_AGENT_TOKEN"
79
- value = coder_agent. go . token
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
- }
76
+ security_context {
77
+ run_as_user = " 1000"
78
+ fs_group = " 1000"
91
79
}
92
80
container {
93
- name = " java"
94
- image = " codercom/enterprise-java:ubuntu"
95
- command = [" sh" , " -c" , coder_agent . java . init_script ]
96
- security_context {
97
- run_as_user = " 1000"
98
- }
99
- env {
100
- name = " CODER_AGENT_TOKEN"
101
- value = coder_agent. java . token
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
- }
113
- }
114
- container {
115
- name = " ubuntu"
81
+ name = " dev"
116
82
image = " codercom/enterprise-base:ubuntu"
117
- command = [" sh" , " -c" , coder_agent . ubuntu . init_script ]
83
+ command = [" sh" , " -c" , coder_agent . main . init_script ]
118
84
security_context {
119
85
run_as_user = " 1000"
120
86
}
121
87
env {
122
88
name = " CODER_AGENT_TOKEN"
123
- value = coder_agent. ubuntu . token
89
+ value = coder_agent. main . token
124
90
}
125
91
volume_mount {
126
92
mount_path = " /home/coder"
127
- name = " ubuntu- home-directory"
93
+ name = " home-directory"
128
94
}
129
95
}
130
96
volume {
131
- name = " ubuntu- home-directory"
97
+ name = " home-directory"
132
98
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"
99
+ claim_name = kubernetes_persistent_volume_claim. home-directory . metadata . 0 . name
150
100
}
151
101
}
152
102
}
153
103
}
154
104
155
- resource "kubernetes_persistent_volume_claim" "java- home-directory" {
105
+ resource "kubernetes_persistent_volume_claim" "home-directory" {
156
106
metadata {
157
107
name = " home-coder-java-${ data . coder_workspace . me . owner } -${ data . coder_workspace . me . name } "
158
108
namespace = var. workspaces_namespace
@@ -166,18 +116,3 @@ resource "kubernetes_persistent_volume_claim" "java-home-directory" {
166
116
}
167
117
}
168
118
}
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
- }
181
- }
182
- }
183
- }
0 commit comments