Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/ws-manager-mk2/config/crd/bases/workspace.gitpod.io_workspaces.yaml
2506 views
1
# Copyright (c) 2025 Gitpod GmbH. All rights reserved.
2
# Licensed under the GNU Affero General Public License (AGPL).
3
# See License.AGPL.txt in the project root for license information.
4
5
---
6
apiVersion: apiextensions.k8s.io/v1
7
kind: CustomResourceDefinition
8
metadata:
9
annotations:
10
controller-gen.kubebuilder.io/version: v0.16.5
11
name: workspaces.workspace.gitpod.io
12
spec:
13
group: workspace.gitpod.io
14
names:
15
kind: Workspace
16
listKind: WorkspaceList
17
plural: workspaces
18
shortNames:
19
- ws
20
singular: workspace
21
scope: Namespaced
22
versions:
23
- additionalPrinterColumns:
24
- jsonPath: .spec.ownership.workspaceID
25
name: Workspace
26
priority: 10
27
type: string
28
- jsonPath: .spec.class
29
name: Class
30
type: string
31
- jsonPath: .spec.type
32
name: Type
33
type: string
34
- jsonPath: .status.runtime.nodeName
35
name: Node
36
type: string
37
- jsonPath: .spec.ownership.owner
38
name: Owner
39
type: string
40
- jsonPath: .spec.ownership.team
41
name: Team
42
type: string
43
- jsonPath: .status.phase
44
name: Phase
45
type: string
46
- jsonPath: .metadata.creationTimestamp
47
name: Age
48
type: date
49
name: v1
50
schema:
51
openAPIV3Schema:
52
description: Workspace is the Schema for the workspaces API
53
properties:
54
apiVersion:
55
description: |-
56
APIVersion defines the versioned schema of this representation of an object.
57
Servers should convert recognized schemas to the latest internal value, and
58
may reject unrecognized values.
59
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
60
type: string
61
kind:
62
description: |-
63
Kind is a string value representing the REST resource this object represents.
64
Servers may infer this from the endpoint the client submits requests to.
65
Cannot be updated.
66
In CamelCase.
67
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
68
type: string
69
metadata:
70
type: object
71
spec:
72
description: WorkspaceSpec defines the desired state of Workspace
73
properties:
74
admission:
75
properties:
76
level:
77
default: Owner
78
enum:
79
- Owner
80
- Everyone
81
type: string
82
required:
83
- level
84
type: object
85
class:
86
type: string
87
git:
88
properties:
89
email:
90
type: string
91
username:
92
type: string
93
required:
94
- email
95
- username
96
type: object
97
image:
98
properties:
99
ide:
100
properties:
101
refs:
102
items:
103
type: string
104
type: array
105
supervisor:
106
type: string
107
web:
108
type: string
109
required:
110
- supervisor
111
- web
112
type: object
113
workspace:
114
properties:
115
ref:
116
type: string
117
type: object
118
required:
119
- ide
120
- workspace
121
type: object
122
initializer:
123
format: byte
124
type: string
125
ownership:
126
properties:
127
owner:
128
type: string
129
team:
130
type: string
131
tenant:
132
type: string
133
workspaceID:
134
type: string
135
required:
136
- owner
137
- workspaceID
138
type: object
139
ports:
140
items:
141
properties:
142
port:
143
format: int32
144
type: integer
145
protocol:
146
default: Http
147
enum:
148
- Http
149
- Https
150
type: string
151
visibility:
152
default: Owner
153
enum:
154
- Owner
155
- Everyone
156
type: string
157
required:
158
- port
159
- protocol
160
- visibility
161
type: object
162
minItems: 0
163
type: array
164
sshGatewayCAPublicKey:
165
type: string
166
sshPublicKeys:
167
items:
168
type: string
169
type: array
170
storageQuota:
171
description: the XFS quota to enforce on the workspace's /workspace
172
folder
173
type: integer
174
sysEnvVars:
175
items:
176
description: EnvVar represents an environment variable present in
177
a Container.
178
properties:
179
name:
180
description: Name of the environment variable. Must be a C_IDENTIFIER.
181
type: string
182
value:
183
description: |-
184
Variable references $(VAR_NAME) are expanded
185
using the previously defined environment variables in the container and
186
any service environment variables. If a variable cannot be resolved,
187
the reference in the input string will be unchanged. Double $$ are reduced
188
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
189
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
190
Escaped references will never be expanded, regardless of whether the variable
191
exists or not.
192
Defaults to "".
193
type: string
194
valueFrom:
195
description: Source for the environment variable's value. Cannot
196
be used if value is not empty.
197
properties:
198
configMapKeyRef:
199
description: Selects a key of a ConfigMap.
200
properties:
201
key:
202
description: The key to select.
203
type: string
204
name:
205
default: ""
206
description: |-
207
Name of the referent.
208
This field is effectively required, but due to backwards compatibility is
209
allowed to be empty. Instances of this type with an empty value here are
210
almost certainly wrong.
211
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
212
type: string
213
optional:
214
description: Specify whether the ConfigMap or its key
215
must be defined
216
type: boolean
217
required:
218
- key
219
type: object
220
x-kubernetes-map-type: atomic
221
fieldRef:
222
description: |-
223
Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
224
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
225
properties:
226
apiVersion:
227
description: Version of the schema the FieldPath is
228
written in terms of, defaults to "v1".
229
type: string
230
fieldPath:
231
description: Path of the field to select in the specified
232
API version.
233
type: string
234
required:
235
- fieldPath
236
type: object
237
x-kubernetes-map-type: atomic
238
resourceFieldRef:
239
description: |-
240
Selects a resource of the container: only resources limits and requests
241
(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
242
properties:
243
containerName:
244
description: 'Container name: required for volumes,
245
optional for env vars'
246
type: string
247
divisor:
248
anyOf:
249
- type: integer
250
- type: string
251
description: Specifies the output format of the exposed
252
resources, defaults to "1"
253
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
254
x-kubernetes-int-or-string: true
255
resource:
256
description: 'Required: resource to select'
257
type: string
258
required:
259
- resource
260
type: object
261
x-kubernetes-map-type: atomic
262
secretKeyRef:
263
description: Selects a key of a secret in the pod's namespace
264
properties:
265
key:
266
description: The key of the secret to select from. Must
267
be a valid secret key.
268
type: string
269
name:
270
default: ""
271
description: |-
272
Name of the referent.
273
This field is effectively required, but due to backwards compatibility is
274
allowed to be empty. Instances of this type with an empty value here are
275
almost certainly wrong.
276
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
277
type: string
278
optional:
279
description: Specify whether the Secret or its key must
280
be defined
281
type: boolean
282
required:
283
- key
284
type: object
285
x-kubernetes-map-type: atomic
286
type: object
287
required:
288
- name
289
type: object
290
type: array
291
timeout:
292
properties:
293
closed:
294
pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h)?)+$
295
type: string
296
maximumLifetime:
297
pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h)?)+$
298
type: string
299
time:
300
pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$
301
type: string
302
type: object
303
type:
304
enum:
305
- Regular
306
- Prebuild
307
- ImageBuild
308
type: string
309
userEnvVars:
310
items:
311
description: EnvVar represents an environment variable present in
312
a Container.
313
properties:
314
name:
315
description: Name of the environment variable. Must be a C_IDENTIFIER.
316
type: string
317
value:
318
description: |-
319
Variable references $(VAR_NAME) are expanded
320
using the previously defined environment variables in the container and
321
any service environment variables. If a variable cannot be resolved,
322
the reference in the input string will be unchanged. Double $$ are reduced
323
to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
324
"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
325
Escaped references will never be expanded, regardless of whether the variable
326
exists or not.
327
Defaults to "".
328
type: string
329
valueFrom:
330
description: Source for the environment variable's value. Cannot
331
be used if value is not empty.
332
properties:
333
configMapKeyRef:
334
description: Selects a key of a ConfigMap.
335
properties:
336
key:
337
description: The key to select.
338
type: string
339
name:
340
default: ""
341
description: |-
342
Name of the referent.
343
This field is effectively required, but due to backwards compatibility is
344
allowed to be empty. Instances of this type with an empty value here are
345
almost certainly wrong.
346
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
347
type: string
348
optional:
349
description: Specify whether the ConfigMap or its key
350
must be defined
351
type: boolean
352
required:
353
- key
354
type: object
355
x-kubernetes-map-type: atomic
356
fieldRef:
357
description: |-
358
Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,
359
spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
360
properties:
361
apiVersion:
362
description: Version of the schema the FieldPath is
363
written in terms of, defaults to "v1".
364
type: string
365
fieldPath:
366
description: Path of the field to select in the specified
367
API version.
368
type: string
369
required:
370
- fieldPath
371
type: object
372
x-kubernetes-map-type: atomic
373
resourceFieldRef:
374
description: |-
375
Selects a resource of the container: only resources limits and requests
376
(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
377
properties:
378
containerName:
379
description: 'Container name: required for volumes,
380
optional for env vars'
381
type: string
382
divisor:
383
anyOf:
384
- type: integer
385
- type: string
386
description: Specifies the output format of the exposed
387
resources, defaults to "1"
388
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
389
x-kubernetes-int-or-string: true
390
resource:
391
description: 'Required: resource to select'
392
type: string
393
required:
394
- resource
395
type: object
396
x-kubernetes-map-type: atomic
397
secretKeyRef:
398
description: Selects a key of a secret in the pod's namespace
399
properties:
400
key:
401
description: The key of the secret to select from. Must
402
be a valid secret key.
403
type: string
404
name:
405
default: ""
406
description: |-
407
Name of the referent.
408
This field is effectively required, but due to backwards compatibility is
409
allowed to be empty. Instances of this type with an empty value here are
410
almost certainly wrong.
411
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
412
type: string
413
optional:
414
description: Specify whether the Secret or its key must
415
be defined
416
type: boolean
417
required:
418
- key
419
type: object
420
x-kubernetes-map-type: atomic
421
type: object
422
required:
423
- name
424
type: object
425
type: array
426
workspaceLocation:
427
type: string
428
required:
429
- admission
430
- class
431
- image
432
- initializer
433
- ownership
434
- ports
435
- type
436
- workspaceLocation
437
type: object
438
status:
439
description: WorkspaceStatus defines the observed state of Workspace
440
properties:
441
conditions:
442
items:
443
description: Condition contains details for one aspect of the current
444
state of this API Resource.
445
properties:
446
lastTransitionTime:
447
description: |-
448
lastTransitionTime is the last time the condition transitioned from one status to another.
449
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
450
format: date-time
451
type: string
452
message:
453
description: |-
454
message is a human readable message indicating details about the transition.
455
This may be an empty string.
456
maxLength: 32768
457
type: string
458
observedGeneration:
459
description: |-
460
observedGeneration represents the .metadata.generation that the condition was set based upon.
461
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
462
with respect to the current state of the instance.
463
format: int64
464
minimum: 0
465
type: integer
466
reason:
467
description: |-
468
reason contains a programmatic identifier indicating the reason for the condition's last transition.
469
Producers of specific condition types may define expected values and meanings for this field,
470
and whether the values are considered a guaranteed API.
471
The value should be a CamelCase string.
472
This field may not be empty.
473
maxLength: 1024
474
minLength: 1
475
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
476
type: string
477
status:
478
description: status of the condition, one of True, False, Unknown.
479
enum:
480
- "True"
481
- "False"
482
- Unknown
483
type: string
484
type:
485
description: type of condition in CamelCase or in foo.example.com/CamelCase.
486
maxLength: 316
487
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
488
type: string
489
required:
490
- lastTransitionTime
491
- message
492
- reason
493
- status
494
- type
495
type: object
496
type: array
497
git:
498
properties:
499
branch:
500
description: branch is branch we're currently on
501
type: string
502
latestCommit:
503
description: latest_commit is the most recent commit on the current
504
branch
505
type: string
506
totalUncommitedFiles:
507
description: the total number of uncommited files
508
format: int64
509
type: integer
510
totalUnpushedCommits:
511
description: the total number of unpushed changes
512
format: int64
513
type: integer
514
totalUntrackedFiles:
515
description: the total number of untracked files
516
format: int64
517
type: integer
518
uncommitedFiles:
519
description: uncommited_files is the number of uncommitted files,
520
possibly truncated
521
items:
522
type: string
523
type: array
524
unpushedCommits:
525
description: unpushed_commits is the number of unpushed changes
526
in the workspace, possibly truncated
527
items:
528
type: string
529
type: array
530
untrackedFiles:
531
description: untracked_files is the number of untracked files
532
in the workspace, possibly truncated
533
items:
534
type: string
535
type: array
536
type: object
537
imageInfo:
538
properties:
539
totalSize:
540
format: int64
541
type: integer
542
workspaceImageRef:
543
type: string
544
workspaceImageSize:
545
format: int64
546
type: integer
547
required:
548
- totalSize
549
type: object
550
initializerMetrics:
551
properties:
552
backup:
553
description: Backup contains metrics for the backup initializer
554
step
555
properties:
556
duration:
557
type: string
558
size:
559
format: int64
560
type: integer
561
type: object
562
composite:
563
description: Composite contains metrics for the composite initializer
564
step
565
properties:
566
duration:
567
type: string
568
size:
569
format: int64
570
type: integer
571
type: object
572
fileDownload:
573
description: FileDownload contains metrics for the file download
574
initializer step
575
properties:
576
duration:
577
type: string
578
size:
579
format: int64
580
type: integer
581
type: object
582
git:
583
description: Git contains metrics for the git initializer step
584
properties:
585
duration:
586
type: string
587
size:
588
format: int64
589
type: integer
590
type: object
591
prebuild:
592
description: Prebuild contains metrics for the prebuild initializer
593
step
594
properties:
595
duration:
596
type: string
597
size:
598
format: int64
599
type: integer
600
type: object
601
snapshot:
602
description: |-
603
Snapshot contains metrics for the snapshot initializer step
604
This used for workspaces started from snapshots.
605
properties:
606
duration:
607
type: string
608
size:
609
format: int64
610
type: integer
611
type: object
612
type: object
613
lastActivity:
614
format: date-time
615
type: string
616
ownerToken:
617
type: string
618
phase:
619
default: Unknown
620
enum:
621
- Unknown
622
- Pending
623
- Imagebuild
624
- Creating
625
- Initializing
626
- Running
627
- Stopping
628
- Stopped
629
type: string
630
podDeletionTime:
631
format: date-time
632
type: string
633
podRecreated:
634
type: integer
635
podStarts:
636
type: integer
637
podStoppingTime:
638
format: date-time
639
type: string
640
runtime:
641
properties:
642
hostIP:
643
type: string
644
nodeName:
645
type: string
646
podIP:
647
type: string
648
podName:
649
type: string
650
type: object
651
snapshot:
652
description: Snapshot contains a snapshot URL if a snapshot was produced
653
prior to shutting the workspace down. This condition is only used
654
for headless workspaces.
655
type: string
656
storage:
657
properties:
658
attachedDevice:
659
type: string
660
mountPath:
661
type: string
662
volumeName:
663
type: string
664
required:
665
- attachedDevice
666
- mountPath
667
- volumeName
668
type: object
669
url:
670
type: string
671
required:
672
- podStarts
673
type: object
674
type: object
675
served: true
676
storage: true
677
subresources:
678
status: {}
679
680