Path: blob/main/components/ws-manager-mk2/config/crd/bases/workspace.gitpod.io_workspaces.yaml
2506 views
# Copyright (c) 2025 Gitpod GmbH. All rights reserved.1# Licensed under the GNU Affero General Public License (AGPL).2# See License.AGPL.txt in the project root for license information.34---5apiVersion: apiextensions.k8s.io/v16kind: CustomResourceDefinition7metadata:8annotations:9controller-gen.kubebuilder.io/version: v0.16.510name: workspaces.workspace.gitpod.io11spec:12group: workspace.gitpod.io13names:14kind: Workspace15listKind: WorkspaceList16plural: workspaces17shortNames:18- ws19singular: workspace20scope: Namespaced21versions:22- additionalPrinterColumns:23- jsonPath: .spec.ownership.workspaceID24name: Workspace25priority: 1026type: string27- jsonPath: .spec.class28name: Class29type: string30- jsonPath: .spec.type31name: Type32type: string33- jsonPath: .status.runtime.nodeName34name: Node35type: string36- jsonPath: .spec.ownership.owner37name: Owner38type: string39- jsonPath: .spec.ownership.team40name: Team41type: string42- jsonPath: .status.phase43name: Phase44type: string45- jsonPath: .metadata.creationTimestamp46name: Age47type: date48name: v149schema:50openAPIV3Schema:51description: Workspace is the Schema for the workspaces API52properties:53apiVersion:54description: |-55APIVersion defines the versioned schema of this representation of an object.56Servers should convert recognized schemas to the latest internal value, and57may reject unrecognized values.58More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources59type: string60kind:61description: |-62Kind is a string value representing the REST resource this object represents.63Servers may infer this from the endpoint the client submits requests to.64Cannot be updated.65In CamelCase.66More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds67type: string68metadata:69type: object70spec:71description: WorkspaceSpec defines the desired state of Workspace72properties:73admission:74properties:75level:76default: Owner77enum:78- Owner79- Everyone80type: string81required:82- level83type: object84class:85type: string86git:87properties:88email:89type: string90username:91type: string92required:9394- username95type: object96image:97properties:98ide:99properties:100refs:101items:102type: string103type: array104supervisor:105type: string106web:107type: string108required:109- supervisor110- web111type: object112workspace:113properties:114ref:115type: string116type: object117required:118- ide119- workspace120type: object121initializer:122format: byte123type: string124ownership:125properties:126owner:127type: string128team:129type: string130tenant:131type: string132workspaceID:133type: string134required:135- owner136- workspaceID137type: object138ports:139items:140properties:141port:142format: int32143type: integer144protocol:145default: Http146enum:147- Http148- Https149type: string150visibility:151default: Owner152enum:153- Owner154- Everyone155type: string156required:157- port158- protocol159- visibility160type: object161minItems: 0162type: array163sshGatewayCAPublicKey:164type: string165sshPublicKeys:166items:167type: string168type: array169storageQuota:170description: the XFS quota to enforce on the workspace's /workspace171folder172type: integer173sysEnvVars:174items:175description: EnvVar represents an environment variable present in176a Container.177properties:178name:179description: Name of the environment variable. Must be a C_IDENTIFIER.180type: string181value:182description: |-183Variable references $(VAR_NAME) are expanded184using the previously defined environment variables in the container and185any service environment variables. If a variable cannot be resolved,186the reference in the input string will be unchanged. Double $$ are reduced187to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.188"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".189Escaped references will never be expanded, regardless of whether the variable190exists or not.191Defaults to "".192type: string193valueFrom:194description: Source for the environment variable's value. Cannot195be used if value is not empty.196properties:197configMapKeyRef:198description: Selects a key of a ConfigMap.199properties:200key:201description: The key to select.202type: string203name:204default: ""205description: |-206Name of the referent.207This field is effectively required, but due to backwards compatibility is208allowed to be empty. Instances of this type with an empty value here are209almost certainly wrong.210More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names211type: string212optional:213description: Specify whether the ConfigMap or its key214must be defined215type: boolean216required:217- key218type: object219x-kubernetes-map-type: atomic220fieldRef:221description: |-222Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,223spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.224properties:225apiVersion:226description: Version of the schema the FieldPath is227written in terms of, defaults to "v1".228type: string229fieldPath:230description: Path of the field to select in the specified231API version.232type: string233required:234- fieldPath235type: object236x-kubernetes-map-type: atomic237resourceFieldRef:238description: |-239Selects a resource of the container: only resources limits and requests240(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.241properties:242containerName:243description: 'Container name: required for volumes,244optional for env vars'245type: string246divisor:247anyOf:248- type: integer249- type: string250description: Specifies the output format of the exposed251resources, defaults to "1"252pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$253x-kubernetes-int-or-string: true254resource:255description: 'Required: resource to select'256type: string257required:258- resource259type: object260x-kubernetes-map-type: atomic261secretKeyRef:262description: Selects a key of a secret in the pod's namespace263properties:264key:265description: The key of the secret to select from. Must266be a valid secret key.267type: string268name:269default: ""270description: |-271Name of the referent.272This field is effectively required, but due to backwards compatibility is273allowed to be empty. Instances of this type with an empty value here are274almost certainly wrong.275More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names276type: string277optional:278description: Specify whether the Secret or its key must279be defined280type: boolean281required:282- key283type: object284x-kubernetes-map-type: atomic285type: object286required:287- name288type: object289type: array290timeout:291properties:292closed:293pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h)?)+$294type: string295maximumLifetime:296pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h)?)+$297type: string298time:299pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$300type: string301type: object302type:303enum:304- Regular305- Prebuild306- ImageBuild307type: string308userEnvVars:309items:310description: EnvVar represents an environment variable present in311a Container.312properties:313name:314description: Name of the environment variable. Must be a C_IDENTIFIER.315type: string316value:317description: |-318Variable references $(VAR_NAME) are expanded319using the previously defined environment variables in the container and320any service environment variables. If a variable cannot be resolved,321the reference in the input string will be unchanged. Double $$ are reduced322to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.323"$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".324Escaped references will never be expanded, regardless of whether the variable325exists or not.326Defaults to "".327type: string328valueFrom:329description: Source for the environment variable's value. Cannot330be used if value is not empty.331properties:332configMapKeyRef:333description: Selects a key of a ConfigMap.334properties:335key:336description: The key to select.337type: string338name:339default: ""340description: |-341Name of the referent.342This field is effectively required, but due to backwards compatibility is343allowed to be empty. Instances of this type with an empty value here are344almost certainly wrong.345More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names346type: string347optional:348description: Specify whether the ConfigMap or its key349must be defined350type: boolean351required:352- key353type: object354x-kubernetes-map-type: atomic355fieldRef:356description: |-357Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['<KEY>']`, `metadata.annotations['<KEY>']`,358spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.359properties:360apiVersion:361description: Version of the schema the FieldPath is362written in terms of, defaults to "v1".363type: string364fieldPath:365description: Path of the field to select in the specified366API version.367type: string368required:369- fieldPath370type: object371x-kubernetes-map-type: atomic372resourceFieldRef:373description: |-374Selects a resource of the container: only resources limits and requests375(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.376properties:377containerName:378description: 'Container name: required for volumes,379optional for env vars'380type: string381divisor:382anyOf:383- type: integer384- type: string385description: Specifies the output format of the exposed386resources, defaults to "1"387pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$388x-kubernetes-int-or-string: true389resource:390description: 'Required: resource to select'391type: string392required:393- resource394type: object395x-kubernetes-map-type: atomic396secretKeyRef:397description: Selects a key of a secret in the pod's namespace398properties:399key:400description: The key of the secret to select from. Must401be a valid secret key.402type: string403name:404default: ""405description: |-406Name of the referent.407This field is effectively required, but due to backwards compatibility is408allowed to be empty. Instances of this type with an empty value here are409almost certainly wrong.410More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names411type: string412optional:413description: Specify whether the Secret or its key must414be defined415type: boolean416required:417- key418type: object419x-kubernetes-map-type: atomic420type: object421required:422- name423type: object424type: array425workspaceLocation:426type: string427required:428- admission429- class430- image431- initializer432- ownership433- ports434- type435- workspaceLocation436type: object437status:438description: WorkspaceStatus defines the observed state of Workspace439properties:440conditions:441items:442description: Condition contains details for one aspect of the current443state of this API Resource.444properties:445lastTransitionTime:446description: |-447lastTransitionTime is the last time the condition transitioned from one status to another.448This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.449format: date-time450type: string451message:452description: |-453message is a human readable message indicating details about the transition.454This may be an empty string.455maxLength: 32768456type: string457observedGeneration:458description: |-459observedGeneration represents the .metadata.generation that the condition was set based upon.460For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date461with respect to the current state of the instance.462format: int64463minimum: 0464type: integer465reason:466description: |-467reason contains a programmatic identifier indicating the reason for the condition's last transition.468Producers of specific condition types may define expected values and meanings for this field,469and whether the values are considered a guaranteed API.470The value should be a CamelCase string.471This field may not be empty.472maxLength: 1024473minLength: 1474pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$475type: string476status:477description: status of the condition, one of True, False, Unknown.478enum:479- "True"480- "False"481- Unknown482type: string483type:484description: type of condition in CamelCase or in foo.example.com/CamelCase.485maxLength: 316486pattern: ^([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])$487type: string488required:489- lastTransitionTime490- message491- reason492- status493- type494type: object495type: array496git:497properties:498branch:499description: branch is branch we're currently on500type: string501latestCommit:502description: latest_commit is the most recent commit on the current503branch504type: string505totalUncommitedFiles:506description: the total number of uncommited files507format: int64508type: integer509totalUnpushedCommits:510description: the total number of unpushed changes511format: int64512type: integer513totalUntrackedFiles:514description: the total number of untracked files515format: int64516type: integer517uncommitedFiles:518description: uncommited_files is the number of uncommitted files,519possibly truncated520items:521type: string522type: array523unpushedCommits:524description: unpushed_commits is the number of unpushed changes525in the workspace, possibly truncated526items:527type: string528type: array529untrackedFiles:530description: untracked_files is the number of untracked files531in the workspace, possibly truncated532items:533type: string534type: array535type: object536imageInfo:537properties:538totalSize:539format: int64540type: integer541workspaceImageRef:542type: string543workspaceImageSize:544format: int64545type: integer546required:547- totalSize548type: object549initializerMetrics:550properties:551backup:552description: Backup contains metrics for the backup initializer553step554properties:555duration:556type: string557size:558format: int64559type: integer560type: object561composite:562description: Composite contains metrics for the composite initializer563step564properties:565duration:566type: string567size:568format: int64569type: integer570type: object571fileDownload:572description: FileDownload contains metrics for the file download573initializer step574properties:575duration:576type: string577size:578format: int64579type: integer580type: object581git:582description: Git contains metrics for the git initializer step583properties:584duration:585type: string586size:587format: int64588type: integer589type: object590prebuild:591description: Prebuild contains metrics for the prebuild initializer592step593properties:594duration:595type: string596size:597format: int64598type: integer599type: object600snapshot:601description: |-602Snapshot contains metrics for the snapshot initializer step603This used for workspaces started from snapshots.604properties:605duration:606type: string607size:608format: int64609type: integer610type: object611type: object612lastActivity:613format: date-time614type: string615ownerToken:616type: string617phase:618default: Unknown619enum:620- Unknown621- Pending622- Imagebuild623- Creating624- Initializing625- Running626- Stopping627- Stopped628type: string629podDeletionTime:630format: date-time631type: string632podRecreated:633type: integer634podStarts:635type: integer636podStoppingTime:637format: date-time638type: string639runtime:640properties:641hostIP:642type: string643nodeName:644type: string645podIP:646type: string647podName:648type: string649type: object650snapshot:651description: Snapshot contains a snapshot URL if a snapshot was produced652prior to shutting the workspace down. This condition is only used653for headless workspaces.654type: string655storage:656properties:657attachedDevice:658type: string659mountPath:660type: string661volumeName:662type: string663required:664- attachedDevice665- mountPath666- volumeName667type: object668url:669type: string670required:671- podStarts672type: object673type: object674served: true675storage: true676subresources:677status: {}678679680