diff --git a/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml b/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml index 65925f58a..dbe65c89b 100644 --- a/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml +++ b/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml @@ -5614,6 +5614,41 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information + about volumes that exist outside of the + current workspace. They are not created + or deleted while processing a devfile but + are still mounted into component containers. + When left empty, it is assumed that a new + volume is to be created. + properties: + name: + description: Name defines the name of + the resource + type: string + type: + description: "Type defines the type of + the resource: \n - `storage` specifies + that this volume refers to a PersistentVolumeClaim + - `configmap` specifies that this volume + refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to + use persistent storage for this volume. + Defaults to true. When set to false, storage + is tied to a pod lifecycle and is erased + on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the + volume should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -5654,6 +5689,40 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about volumes + that exist outside of the current workspace. They + are not created or deleted while processing a devfile + but are still mounted into component containers. When + left empty, it is assumed that a new volume is to + be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume refers + to a PersistentVolumeClaim - `configmap` specifies + that this volume refers to a ConfigMap - `secret` + specifies that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + required: + - name + - type + type: object + persistent: + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When set + to false, storage is tied to a pod lifecycle and is + erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume should + be mounted without write capabilities. Defaults to + false. + type: boolean size: description: Size of the volume type: string @@ -7161,6 +7230,43 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information + about volumes that exist outside of + the current workspace. They are not + created or deleted while processing + a devfile but are still mounted into + component containers. When left empty, + it is assumed that a new volume is to + be created. + properties: + name: + description: Name defines the name + of the resource + type: string + type: + description: "Type defines the type + of the resource: \n - `storage` + specifies that this volume refers + to a PersistentVolumeClaim - `configmap` + specifies that this volume refers + to a ConfigMap - `secret` specifies + that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether + to use persistent storage for this volume. + Defaults to true. When set to false, + storage is tied to a pod lifecycle and + is erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether + the volume should be mounted without + write capabilities. Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -7200,6 +7306,37 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about + volumes that exist outside of the current workspace. + They are not created or deleted while processing + a devfile but are still mounted into component + containers. When left empty, it is assumed that + a new volume is to be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume + refers to a PersistentVolumeClaim - `configmap` + specifies that this volume refers to a ConfigMap + - `secret` specifies that this volume refers + to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When + set to false, storage is tied to a pod lifecycle + and is erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume + should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string diff --git a/crds/workspace.devfile.io_devworkspaces.yaml b/crds/workspace.devfile.io_devworkspaces.yaml index a153b58cd..c0f2c8339 100644 --- a/crds/workspace.devfile.io_devworkspaces.yaml +++ b/crds/workspace.devfile.io_devworkspaces.yaml @@ -5619,6 +5619,41 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information + about volumes that exist outside of the + current workspace. They are not created + or deleted while processing a devfile but + are still mounted into component containers. + When left empty, it is assumed that a new + volume is to be created. + properties: + name: + description: Name defines the name of + the resource + type: string + type: + description: "Type defines the type of + the resource: \n - `storage` specifies + that this volume refers to a PersistentVolumeClaim + - `configmap` specifies that this volume + refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to + use persistent storage for this volume. + Defaults to true. When set to false, storage + is tied to a pod lifecycle and is erased + on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the + volume should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -5659,6 +5694,41 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about volumes + that exist outside of the current workspace. They + are not created or deleted while processing a devfile + but are still mounted into component containers. When + left empty, it is assumed that a new volume is to + be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume refers + to a PersistentVolumeClaim - `configmap` specifies + that this volume refers to a ConfigMap - `secret` + specifies that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + required: + - name + - type + type: object + persistent: + default: true + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When set + to false, storage is tied to a pod lifecycle and is + erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume should + be mounted without write capabilities. Defaults to + false. + type: boolean size: description: Size of the volume type: string @@ -7166,6 +7236,43 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information + about volumes that exist outside of + the current workspace. They are not + created or deleted while processing + a devfile but are still mounted into + component containers. When left empty, + it is assumed that a new volume is to + be created. + properties: + name: + description: Name defines the name + of the resource + type: string + type: + description: "Type defines the type + of the resource: \n - `storage` + specifies that this volume refers + to a PersistentVolumeClaim - `configmap` + specifies that this volume refers + to a ConfigMap - `secret` specifies + that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether + to use persistent storage for this volume. + Defaults to true. When set to false, + storage is tied to a pod lifecycle and + is erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether + the volume should be mounted without + write capabilities. Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -7205,6 +7312,37 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about + volumes that exist outside of the current workspace. + They are not created or deleted while processing + a devfile but are still mounted into component + containers. When left empty, it is assumed that + a new volume is to be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume + refers to a PersistentVolumeClaim - `configmap` + specifies that this volume refers to a ConfigMap + - `secret` specifies that this volume refers + to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When + set to false, storage is tied to a pod lifecycle + and is erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume + should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string diff --git a/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml b/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml index 2e637136f..01a6d62a8 100644 --- a/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml +++ b/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml @@ -5328,6 +5328,38 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about + volumes that exist outside of the current workspace. + They are not created or deleted while processing + a devfile but are still mounted into component + containers. When left empty, it is assumed that + a new volume is to be created. + properties: + name: + description: Name defines the name of the + resource + type: string + type: + description: "Type defines the type of the + resource: \n - `storage` specifies that + this volume refers to a PersistentVolumeClaim + - `configmap` specifies that this volume + refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to use + persistent storage for this volume. Defaults + to true. When set to false, storage is tied + to a pod lifecycle and is erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume + should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -5368,6 +5400,37 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about volumes + that exist outside of the current workspace. They are + not created or deleted while processing a devfile but + are still mounted into component containers. When left + empty, it is assumed that a new volume is to be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume refers to + a PersistentVolumeClaim - `configmap` specifies that + this volume refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + required: + - name + - type + type: object + persistent: + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When set to + false, storage is tied to a pod lifecycle and is erased + on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume should + be mounted without write capabilities. Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -6821,6 +6884,41 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information + about volumes that exist outside of the + current workspace. They are not created + or deleted while processing a devfile but + are still mounted into component containers. + When left empty, it is assumed that a new + volume is to be created. + properties: + name: + description: Name defines the name of + the resource + type: string + type: + description: "Type defines the type of + the resource: \n - `storage` specifies + that this volume refers to a PersistentVolumeClaim + - `configmap` specifies that this volume + refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to + use persistent storage for this volume. + Defaults to true. When set to false, storage + is tied to a pod lifecycle and is erased + on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the + volume should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -6859,6 +6957,37 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about volumes + that exist outside of the current workspace. They + are not created or deleted while processing a devfile + but are still mounted into component containers. When + left empty, it is assumed that a new volume is to + be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume refers + to a PersistentVolumeClaim - `configmap` specifies + that this volume refers to a ConfigMap - `secret` + specifies that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When set + to false, storage is tied to a pod lifecycle and is + erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume should + be mounted without write capabilities. Defaults to + false. + type: boolean size: description: Size of the volume type: string diff --git a/crds/workspace.devfile.io_devworkspacetemplates.yaml b/crds/workspace.devfile.io_devworkspacetemplates.yaml index 7e3cdfadc..e29b0d0f2 100644 --- a/crds/workspace.devfile.io_devworkspacetemplates.yaml +++ b/crds/workspace.devfile.io_devworkspacetemplates.yaml @@ -5333,6 +5333,38 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about + volumes that exist outside of the current workspace. + They are not created or deleted while processing + a devfile but are still mounted into component + containers. When left empty, it is assumed that + a new volume is to be created. + properties: + name: + description: Name defines the name of the + resource + type: string + type: + description: "Type defines the type of the + resource: \n - `storage` specifies that + this volume refers to a PersistentVolumeClaim + - `configmap` specifies that this volume + refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to use + persistent storage for this volume. Defaults + to true. When set to false, storage is tied + to a pod lifecycle and is erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume + should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -5373,6 +5405,38 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about volumes + that exist outside of the current workspace. They are + not created or deleted while processing a devfile but + are still mounted into component containers. When left + empty, it is assumed that a new volume is to be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume refers to + a PersistentVolumeClaim - `configmap` specifies that + this volume refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + required: + - name + - type + type: object + persistent: + default: true + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When set to + false, storage is tied to a pod lifecycle and is erased + on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume should + be mounted without write capabilities. Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -6826,6 +6890,41 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information + about volumes that exist outside of the + current workspace. They are not created + or deleted while processing a devfile but + are still mounted into component containers. + When left empty, it is assumed that a new + volume is to be created. + properties: + name: + description: Name defines the name of + the resource + type: string + type: + description: "Type defines the type of + the resource: \n - `storage` specifies + that this volume refers to a PersistentVolumeClaim + - `configmap` specifies that this volume + refers to a ConfigMap - `secret` specifies + that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to + use persistent storage for this volume. + Defaults to true. When set to false, storage + is tied to a pod lifecycle and is erased + on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the + volume should be mounted without write capabilities. + Defaults to false. + type: boolean size: description: Size of the volume type: string @@ -6864,6 +6963,37 @@ spec: description: Allows specifying the definition of a volume shared by several other components properties: + external: + description: External defines information about volumes + that exist outside of the current workspace. They + are not created or deleted while processing a devfile + but are still mounted into component containers. When + left empty, it is assumed that a new volume is to + be created. + properties: + name: + description: Name defines the name of the resource + type: string + type: + description: "Type defines the type of the resource: + \n - `storage` specifies that this volume refers + to a PersistentVolumeClaim - `configmap` specifies + that this volume refers to a ConfigMap - `secret` + specifies that this volume refers to a Secret + kubebuilder:validation:Enum=\"storage,configmap,secret\"" + type: string + type: object + persistent: + description: Persistent defines whether to use persistent + storage for this volume. Defaults to true. When set + to false, storage is tied to a pod lifecycle and is + erased on delete. + type: boolean + readonly: + description: ReadOnly specifies whether the volume should + be mounted without write capabilities. Defaults to + false. + type: boolean size: description: Size of the volume type: string diff --git a/pkg/apis/workspaces/v1alpha2/volumeComponent.go b/pkg/apis/workspaces/v1alpha2/volumeComponent.go index 069238198..2474270c9 100644 --- a/pkg/apis/workspaces/v1alpha2/volumeComponent.go +++ b/pkg/apis/workspaces/v1alpha2/volumeComponent.go @@ -11,4 +11,44 @@ type Volume struct { // +optional // Size of the volume Size string `json:"size,omitempty"` + // Persistent defines whether to use persistent storage for this volume. Defaults + // to true. When set to false, storage is tied to a pod lifecycle and is erased on + // delete. + // +optional + // +kubebuilder:default=true + Persistent bool `json:"persistent,omitempty"` + // ReadOnly specifies whether the volume should be mounted without write capabilities. + // Defaults to false. + // +optional + ReadOnly bool `json:"readonly,omitempty"` + // External defines information about volumes that exist outside of the current workspace. + // They are not created or deleted while processing a devfile but are still mounted into + // component containers. When left empty, it is assumed that a new volume is to be created. + // +optional + External ExistingVolumeRef `json:"external,omitempty"` } + +// ExistingVolumeRef is a refernce to a volume that exists outside the lifecycle of components +type ExistingVolumeRef struct { + // Name defines the name of the resource + Name string `json:"name"` + // Type defines the type of the resource: + // + // - `storage` specifies that this volume refers to a PersistentVolumeClaim + // - `configmap` specifies that this volume refers to a ConfigMap + // - `secret` specifies that this volume refers to a Secret + // kubebuilder:validation:Enum="storage,configmap,secret" + Type ExistingVolumeType `json:"type"` +} + +// ExistingVolumeType defines the type of an external Volume +type ExistingVolumeType string + +const ( + // StorageVolumeType specifies persistent storage, e.g. a PersistentVolumeClaim + StorageVolumeType ExistingVolumeType = "storage" + // ConfigmapVolumeType specifies a configmap + ConfigmapVolumeType ExistingVolumeType = "configmap" + // SecretVolumeType specifies a secret + SecretVolumeType ExistingVolumeType = "secret" +) diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go index 3ee9a3c32..94c1331a9 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go @@ -1699,6 +1699,66 @@ func (in *ExecCommandPluginOverrideParentOverride) DeepCopy() *ExecCommandPlugin return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExistingVolumeRef) DeepCopyInto(out *ExistingVolumeRef) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExistingVolumeRef. +func (in *ExistingVolumeRef) DeepCopy() *ExistingVolumeRef { + if in == nil { + return nil + } + out := new(ExistingVolumeRef) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExistingVolumeRefParentOverride) DeepCopyInto(out *ExistingVolumeRefParentOverride) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExistingVolumeRefParentOverride. +func (in *ExistingVolumeRefParentOverride) DeepCopy() *ExistingVolumeRefParentOverride { + if in == nil { + return nil + } + out := new(ExistingVolumeRefParentOverride) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExistingVolumeRefPluginOverride) DeepCopyInto(out *ExistingVolumeRefPluginOverride) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExistingVolumeRefPluginOverride. +func (in *ExistingVolumeRefPluginOverride) DeepCopy() *ExistingVolumeRefPluginOverride { + if in == nil { + return nil + } + out := new(ExistingVolumeRefPluginOverride) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExistingVolumeRefPluginOverrideParentOverride) DeepCopyInto(out *ExistingVolumeRefPluginOverrideParentOverride) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExistingVolumeRefPluginOverrideParentOverride. +func (in *ExistingVolumeRefPluginOverrideParentOverride) DeepCopy() *ExistingVolumeRefPluginOverrideParentOverride { + if in == nil { + return nil + } + out := new(ExistingVolumeRefPluginOverrideParentOverride) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GitLikeProjectSource) DeepCopyInto(out *GitLikeProjectSource) { *out = *in @@ -2651,6 +2711,7 @@ func (in *StarterProjectParentOverride) DeepCopy() *StarterProjectParentOverride // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Volume) DeepCopyInto(out *Volume) { *out = *in + out.External = in.External } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Volume. @@ -2794,6 +2855,7 @@ func (in *VolumeMountPluginOverrideParentOverride) DeepCopy() *VolumeMountPlugin // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *VolumeParentOverride) DeepCopyInto(out *VolumeParentOverride) { *out = *in + out.External = in.External } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeParentOverride. @@ -2809,6 +2871,7 @@ func (in *VolumeParentOverride) DeepCopy() *VolumeParentOverride { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *VolumePluginOverride) DeepCopyInto(out *VolumePluginOverride) { *out = *in + out.External = in.External } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumePluginOverride. @@ -2824,6 +2887,7 @@ func (in *VolumePluginOverride) DeepCopy() *VolumePluginOverride { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *VolumePluginOverrideParentOverride) DeepCopyInto(out *VolumePluginOverrideParentOverride) { *out = *in + out.External = in.External } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumePluginOverrideParentOverride. diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go b/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go index 8cca7b161..e8507331c 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go @@ -489,6 +489,23 @@ type VolumeParentOverride struct { // +optional // Size of the volume Size string `json:"size,omitempty"` + + // Persistent defines whether to use persistent storage for this volume. Defaults + // to true. When set to false, storage is tied to a pod lifecycle and is erased on + // delete. + // +optional + Persistent bool `json:"persistent,omitempty"` + + // ReadOnly specifies whether the volume should be mounted without write capabilities. + // Defaults to false. + // +optional + ReadOnly bool `json:"readonly,omitempty"` + + // External defines information about volumes that exist outside of the current workspace. + // They are not created or deleted while processing a devfile but are still mounted into + // component containers. When left empty, it is assumed that a new volume is to be created. + // +optional + External ExistingVolumeRefParentOverride `json:"external,omitempty"` } type ImportReferenceParentOverride struct { @@ -620,6 +637,23 @@ type K8sLikeComponentLocationParentOverride struct { Inlined string `json:"inlined,omitempty"` } +// ExistingVolumeRef is a refernce to a volume that exists outside the lifecycle of components +type ExistingVolumeRefParentOverride struct { + + // +optional + // Name defines the name of the resource + Name string `json:"name,omitempty"` + + // +optional + // Type defines the type of the resource: + // + // - `storage` specifies that this volume refers to a PersistentVolumeClaim + // - `configmap` specifies that this volume refers to a ConfigMap + // - `secret` specifies that this volume refers to a Secret + // kubebuilder:validation:Enum="storage,configmap,secret" + Type ExistingVolumeTypeParentOverride `json:"type,omitempty"` +} + // Location from where the an import reference is retrieved // +union type ImportReferenceUnionParentOverride struct { @@ -712,6 +746,9 @@ type VscodeConfigurationCommandLocationTypeParentOverride string // Only one of the following component type may be specified. type K8sLikeComponentLocationTypeParentOverride string +// ExistingVolumeType defines the type of an external Volume +type ExistingVolumeTypeParentOverride string + // ImportReferenceType describes the type of location // from where the referenced template structure should be retrieved. // Only one of the following parent locations may be specified. @@ -1042,6 +1079,23 @@ type VolumePluginOverrideParentOverride struct { // +optional // Size of the volume Size string `json:"size,omitempty"` + + // Persistent defines whether to use persistent storage for this volume. Defaults + // to true. When set to false, storage is tied to a pod lifecycle and is erased on + // delete. + // +optional + Persistent bool `json:"persistent,omitempty"` + + // ReadOnly specifies whether the volume should be mounted without write capabilities. + // Defaults to false. + // +optional + ReadOnly bool `json:"readonly,omitempty"` + + // External defines information about volumes that exist outside of the current workspace. + // They are not created or deleted while processing a devfile but are still mounted into + // component containers. When left empty, it is assumed that a new volume is to be created. + // +optional + External ExistingVolumeRefPluginOverrideParentOverride `json:"external,omitempty"` } type LabeledCommandPluginOverrideParentOverride struct { @@ -1132,6 +1186,23 @@ type K8sLikeComponentLocationPluginOverrideParentOverride struct { Inlined string `json:"inlined,omitempty"` } +// ExistingVolumeRef is a refernce to a volume that exists outside the lifecycle of components +type ExistingVolumeRefPluginOverrideParentOverride struct { + + // +optional + // Name defines the name of the resource + Name string `json:"name,omitempty"` + + // +optional + // Type defines the type of the resource: + // + // - `storage` specifies that this volume refers to a PersistentVolumeClaim + // - `configmap` specifies that this volume refers to a ConfigMap + // - `secret` specifies that this volume refers to a Secret + // kubebuilder:validation:Enum="storage,configmap,secret" + Type ExistingVolumeTypePluginOverrideParentOverride `json:"type,omitempty"` +} + type CommandGroupPluginOverrideParentOverride struct { // +optional @@ -1153,6 +1224,9 @@ type VscodeConfigurationCommandLocationTypePluginOverrideParentOverride string // Only one of the following component type may be specified. type K8sLikeComponentLocationTypePluginOverrideParentOverride string +// ExistingVolumeType defines the type of an external Volume +type ExistingVolumeTypePluginOverrideParentOverride string + // CommandGroupKind describes the kind of command group. // +kubebuilder:validation:Enum=build;run;test;debug type CommandGroupKindPluginOverrideParentOverride string diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go b/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go index 56c63316c..7773fd605 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go @@ -368,6 +368,23 @@ type VolumePluginOverride struct { // +optional // Size of the volume Size string `json:"size,omitempty"` + + // Persistent defines whether to use persistent storage for this volume. Defaults + // to true. When set to false, storage is tied to a pod lifecycle and is erased on + // delete. + // +optional + Persistent bool `json:"persistent,omitempty"` + + // ReadOnly specifies whether the volume should be mounted without write capabilities. + // Defaults to false. + // +optional + ReadOnly bool `json:"readonly,omitempty"` + + // External defines information about volumes that exist outside of the current workspace. + // They are not created or deleted while processing a devfile but are still mounted into + // component containers. When left empty, it is assumed that a new volume is to be created. + // +optional + External ExistingVolumeRefPluginOverride `json:"external,omitempty"` } type LabeledCommandPluginOverride struct { @@ -457,6 +474,23 @@ type K8sLikeComponentLocationPluginOverride struct { Inlined string `json:"inlined,omitempty"` } +// ExistingVolumeRef is a refernce to a volume that exists outside the lifecycle of components +type ExistingVolumeRefPluginOverride struct { + + // +optional + // Name defines the name of the resource + Name string `json:"name,omitempty"` + + // +optional + // Type defines the type of the resource: + // + // - `storage` specifies that this volume refers to a PersistentVolumeClaim + // - `configmap` specifies that this volume refers to a ConfigMap + // - `secret` specifies that this volume refers to a Secret + // kubebuilder:validation:Enum="storage,configmap,secret" + Type ExistingVolumeTypePluginOverride `json:"type,omitempty"` +} + type CommandGroupPluginOverride struct { // +optional @@ -478,6 +512,9 @@ type VscodeConfigurationCommandLocationTypePluginOverride string // Only one of the following component type may be specified. type K8sLikeComponentLocationTypePluginOverride string +// ExistingVolumeType defines the type of an external Volume +type ExistingVolumeTypePluginOverride string + // CommandGroupKind describes the kind of command group. // +kubebuilder:validation:Enum=build;run;test;debug type CommandGroupKindPluginOverride string diff --git a/schemas/latest/dev-workspace-template-spec.json b/schemas/latest/dev-workspace-template-spec.json index 18f60b2a0..07e339b2b 100644 --- a/schemas/latest/dev-workspace-template-spec.json +++ b/schemas/latest/dev-workspace-template-spec.json @@ -1414,6 +1414,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -1459,6 +1482,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "default": true + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -2822,6 +2873,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -2864,6 +2938,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" diff --git a/schemas/latest/dev-workspace-template.json b/schemas/latest/dev-workspace-template.json index 017c37b4b..6edbb9623 100644 --- a/schemas/latest/dev-workspace-template.json +++ b/schemas/latest/dev-workspace-template.json @@ -1579,6 +1579,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -1624,6 +1647,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "default": true + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -2987,6 +3038,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -3029,6 +3103,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" diff --git a/schemas/latest/dev-workspace.json b/schemas/latest/dev-workspace.json index 5beac45ba..adecedd58 100644 --- a/schemas/latest/dev-workspace.json +++ b/schemas/latest/dev-workspace.json @@ -1592,6 +1592,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -1637,6 +1660,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "default": true + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -3000,6 +3051,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -3042,6 +3116,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" diff --git a/schemas/latest/devfile.json b/schemas/latest/devfile.json index 7f1d9a749..051a247ed 100644 --- a/schemas/latest/devfile.json +++ b/schemas/latest/devfile.json @@ -1339,6 +1339,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -1384,6 +1407,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "default": true + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -2791,6 +2842,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -2833,6 +2907,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" diff --git a/schemas/latest/ide-targeted/dev-workspace-template-spec.json b/schemas/latest/ide-targeted/dev-workspace-template-spec.json index 7b73756a7..e98a32414 100644 --- a/schemas/latest/ide-targeted/dev-workspace-template-spec.json +++ b/schemas/latest/ide-targeted/dev-workspace-template-spec.json @@ -1561,6 +1561,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -1613,6 +1641,38 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3128,6 +3188,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3177,6 +3265,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", diff --git a/schemas/latest/ide-targeted/dev-workspace-template.json b/schemas/latest/ide-targeted/dev-workspace-template.json index aa9afc256..23a0d9abf 100644 --- a/schemas/latest/ide-targeted/dev-workspace-template.json +++ b/schemas/latest/ide-targeted/dev-workspace-template.json @@ -1759,6 +1759,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -1811,6 +1839,38 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3326,6 +3386,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3375,6 +3463,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", diff --git a/schemas/latest/ide-targeted/dev-workspace.json b/schemas/latest/ide-targeted/dev-workspace.json index 83ac73491..17bd63ff4 100644 --- a/schemas/latest/ide-targeted/dev-workspace.json +++ b/schemas/latest/ide-targeted/dev-workspace.json @@ -1772,6 +1772,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -1824,6 +1852,38 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3339,6 +3399,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3388,6 +3476,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", diff --git a/schemas/latest/ide-targeted/devfile.json b/schemas/latest/ide-targeted/devfile.json index e980ce9ad..77ffbc67b 100644 --- a/schemas/latest/ide-targeted/devfile.json +++ b/schemas/latest/ide-targeted/devfile.json @@ -1476,6 +1476,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -1528,6 +1556,38 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "required": [ + "name", + "type" + ], + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3096,6 +3156,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -3145,6 +3233,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", diff --git a/schemas/latest/ide-targeted/parent-overrides.json b/schemas/latest/ide-targeted/parent-overrides.json index 396627c40..ba3993425 100644 --- a/schemas/latest/ide-targeted/parent-overrides.json +++ b/schemas/latest/ide-targeted/parent-overrides.json @@ -1443,6 +1443,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", @@ -1492,6 +1520,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", diff --git a/schemas/latest/ide-targeted/plugin-overrides.json b/schemas/latest/ide-targeted/plugin-overrides.json index 555e35b1f..3e4a42bbe 100644 --- a/schemas/latest/ide-targeted/plugin-overrides.json +++ b/schemas/latest/ide-targeted/plugin-overrides.json @@ -712,6 +712,34 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string", + "markdownDescription": "Name defines the name of the resource" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string", + "markdownDescription": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"" + } + }, + "additionalProperties": false, + "markdownDescription": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created." + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean", + "markdownDescription": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete." + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean", + "markdownDescription": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false." + }, "size": { "description": "Size of the volume", "type": "string", diff --git a/schemas/latest/parent-overrides.json b/schemas/latest/parent-overrides.json index 856b7a046..9d3bf95b5 100644 --- a/schemas/latest/parent-overrides.json +++ b/schemas/latest/parent-overrides.json @@ -1298,6 +1298,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" @@ -1340,6 +1363,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string" diff --git a/schemas/latest/plugin-overrides.json b/schemas/latest/plugin-overrides.json index 709d848f7..8c7c61269 100644 --- a/schemas/latest/plugin-overrides.json +++ b/schemas/latest/plugin-overrides.json @@ -639,6 +639,29 @@ "description": "Allows specifying the definition of a volume shared by several other components", "type": "object", "properties": { + "external": { + "description": "External defines information about volumes that exist outside of the current workspace. They are not created or deleted while processing a devfile but are still mounted into component containers. When left empty, it is assumed that a new volume is to be created.", + "type": "object", + "properties": { + "name": { + "description": "Name defines the name of the resource", + "type": "string" + }, + "type": { + "description": "Type defines the type of the resource:\n- `storage` specifies that this volume refers to a PersistentVolumeClaim - `configmap` specifies that this volume refers to a ConfigMap - `secret` specifies that this volume refers to a Secret kubebuilder:validation:Enum=\"storage,configmap,secret\"", + "type": "string" + } + }, + "additionalProperties": false + }, + "persistent": { + "description": "Persistent defines whether to use persistent storage for this volume. Defaults to true. When set to false, storage is tied to a pod lifecycle and is erased on delete.", + "type": "boolean" + }, + "readonly": { + "description": "ReadOnly specifies whether the volume should be mounted without write capabilities. Defaults to false.", + "type": "boolean" + }, "size": { "description": "Size of the volume", "type": "string"