@@ -89,6 +89,17 @@ resource "kubernetes_persistent_volume_claim" "home" {
89
89
metadata {
90
90
name = " coder-${ lower (data. coder_workspace . me . owner )} -${ lower (data. coder_workspace . me . name )} -home"
91
91
namespace = var. namespace
92
+ labels = {
93
+ " app.kubernetes.io/name" = " coder-pvc"
94
+ " app.kubernetes.io/instance" = " coder-pvc-${ lower (data. coder_workspace . me . owner )} -${ lower (data. coder_workspace . me . name )} "
95
+ " app.kubernetes.io/part-of" = " coder"
96
+ // Coder specific labels.
97
+ " com.coder.resource" = " true"
98
+ " com.coder.workspace.id" = data.coder_workspace.me.id
99
+ " com.coder.workspace.name" = data.coder_workspace.me.name
100
+ " com.coder.user.id" = data.coder_workspace.me.owner_id
101
+ " com.coder.user.username" = data.coder_workspace.me.owner
102
+ }
92
103
}
93
104
wait_until_bound = false
94
105
spec {
@@ -106,6 +117,17 @@ resource "kubernetes_pod" "main" {
106
117
metadata {
107
118
name = " coder-${ lower (data. coder_workspace . me . owner )} -${ lower (data. coder_workspace . me . name )} "
108
119
namespace = var. namespace
120
+ labels = {
121
+ " app.kubernetes.io/name" = " coder-workspace"
122
+ " app.kubernetes.io/instance" = " coder-workspace-${ lower (data. coder_workspace . me . owner )} -${ lower (data. coder_workspace . me . name )} "
123
+ " app.kubernetes.io/part-of" = " coder"
124
+ // Coder specific labels.
125
+ " com.coder.resource" = " true"
126
+ " com.coder.workspace.id" = data.coder_workspace.me.id
127
+ " com.coder.workspace.name" = data.coder_workspace.me.name
128
+ " com.coder.user.id" = data.coder_workspace.me.owner_id
129
+ " com.coder.user.username" = data.coder_workspace.me.owner
130
+ }
109
131
}
110
132
spec {
111
133
security_context {
@@ -137,5 +159,26 @@ resource "kubernetes_pod" "main" {
137
159
read_only = false
138
160
}
139
161
}
162
+
163
+
164
+ affinity {
165
+ pod_anti_affinity {
166
+ // This affinity attempts to spread out all workspace pods evenly across
167
+ // nodes.
168
+ preferred_during_scheduling_ignored_during_execution {
169
+ weight = 1
170
+ pod_affinity_term {
171
+ topology_key = " kubernetes.io/hostname"
172
+ label_selector {
173
+ match_expressions {
174
+ key = " app.kubernetes.io/name"
175
+ operator = " In"
176
+ values = [" coder-workspace" ]
177
+ }
178
+ }
179
+ }
180
+ }
181
+ }
182
+ }
140
183
}
141
184
}
0 commit comments