From cc041a64d175e97ada624d9d18035369c0f671e1 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Wed, 27 Oct 2021 16:24:28 -0400 Subject: [PATCH 1/3] add annotation to container spec and add validation to it Signed-off-by: Stephanie --- ...pace.devfile.io_devworkspaces.v1beta1.yaml | 89 ++++++++++ crds/workspace.devfile.io_devworkspaces.yaml | 90 ++++++++++ ...file.io_devworkspacetemplates.v1beta1.yaml | 86 ++++++++++ ...pace.devfile.io_devworkspacetemplates.yaml | 86 ++++++++++ .../v1alpha2/component_container.go | 19 +++ .../v1alpha2/zz_generated.deepcopy.go | 148 ++++++++++++++++ .../v1alpha2/zz_generated.parent_overrides.go | 40 +++++ .../v1alpha2/zz_generated.plugin_overrides.go | 20 +++ pkg/validation/commands_test.go | 6 +- pkg/validation/components.go | 34 ++++ pkg/validation/components_test.go | 160 ++++++++++++++++-- pkg/validation/errors.go | 17 ++ pkg/validation/validation-rule.md | 1 + .../latest/dev-workspace-template-spec.json | 112 ++++++++++++ schemas/latest/dev-workspace-template.json | 112 ++++++++++++ schemas/latest/dev-workspace.json | 112 ++++++++++++ schemas/latest/devfile.json | 56 ++++++ .../dev-workspace-template-spec.json | 128 ++++++++++++++ .../ide-targeted/dev-workspace-template.json | 128 ++++++++++++++ .../latest/ide-targeted/dev-workspace.json | 128 ++++++++++++++ schemas/latest/ide-targeted/devfile.json | 64 +++++++ .../latest/ide-targeted/parent-overrides.json | 64 +++++++ .../latest/ide-targeted/plugin-overrides.json | 32 ++++ schemas/latest/parent-overrides.json | 56 ++++++ schemas/latest/plugin-overrides.json | 28 +++ 25 files changed, 1798 insertions(+), 18 deletions(-) diff --git a/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml b/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml index f20cb646c..b639f68a5 100644 --- a/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml +++ b/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml @@ -335,6 +335,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to specific + resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments are supplied @@ -1082,6 +1103,29 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added + to specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to + deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to + service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. @@ -1943,6 +1987,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to specific + resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments @@ -2675,6 +2740,30 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be + added to specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added + to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added + to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. diff --git a/crds/workspace.devfile.io_devworkspaces.yaml b/crds/workspace.devfile.io_devworkspaces.yaml index 7548d8541..690ddc87b 100644 --- a/crds/workspace.devfile.io_devworkspaces.yaml +++ b/crds/workspace.devfile.io_devworkspaces.yaml @@ -339,6 +339,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to specific + resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments are @@ -1100,6 +1121,29 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added + to specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to + deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to + service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. @@ -1975,6 +2019,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to + specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments @@ -2719,6 +2784,31 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be + added to specific resources for this + container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added + to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added + to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage diff --git a/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml b/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml index aa299bd4d..6a04a05b1 100644 --- a/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml +++ b/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml @@ -306,6 +306,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to specific + resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes Ingress + or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments are supplied either @@ -1032,6 +1053,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to + specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments @@ -1857,6 +1899,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to specific + resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments are supplied @@ -2571,6 +2634,29 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added + to specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to + deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to + service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. diff --git a/crds/workspace.devfile.io_devworkspacetemplates.yaml b/crds/workspace.devfile.io_devworkspacetemplates.yaml index 41cc865a5..ee88b41e9 100644 --- a/crds/workspace.devfile.io_devworkspacetemplates.yaml +++ b/crds/workspace.devfile.io_devworkspacetemplates.yaml @@ -310,6 +310,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to specific + resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes Ingress + or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments are supplied @@ -1052,6 +1073,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added + to specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments @@ -1890,6 +1932,27 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added to specific + resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. The arguments are @@ -2611,6 +2674,29 @@ spec: description: Allows adding and configuring devworkspace-related containers properties: + annotation: + description: Annotations that should be added + to specific resources for this container + properties: + deployment: + additionalProperties: + type: string + description: Annotations to be added to + deployment + type: object + ingress: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object + service: + additionalProperties: + type: string + description: Annotations to be added to + service + type: object + type: object args: description: "The arguments to supply to the command running the dockerimage component. diff --git a/pkg/apis/workspaces/v1alpha2/component_container.go b/pkg/apis/workspaces/v1alpha2/component_container.go index 08ded6bb2..bc06234f5 100644 --- a/pkg/apis/workspaces/v1alpha2/component_container.go +++ b/pkg/apis/workspaces/v1alpha2/component_container.go @@ -7,6 +7,21 @@ type ContainerComponent struct { Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } +// Annotation specifies the annotations to be added to specific resources +type Annotation struct { + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + // +devfile:getter:generate type Container struct { Image string `json:"image"` @@ -23,6 +38,10 @@ type Container struct { // - `$PROJECT_SOURCE` Env []EnvVar `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation Annotation `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMount `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go index ee9afdfbb..83c8af937 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go @@ -9,6 +9,150 @@ import ( "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Annotation) DeepCopyInto(out *Annotation) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Ingress != nil { + in, out := &in.Ingress, &out.Ingress + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Annotation. +func (in *Annotation) DeepCopy() *Annotation { + if in == nil { + return nil + } + out := new(Annotation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AnnotationParentOverride) DeepCopyInto(out *AnnotationParentOverride) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Ingress != nil { + in, out := &in.Ingress, &out.Ingress + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationParentOverride. +func (in *AnnotationParentOverride) DeepCopy() *AnnotationParentOverride { + if in == nil { + return nil + } + out := new(AnnotationParentOverride) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AnnotationPluginOverride) DeepCopyInto(out *AnnotationPluginOverride) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Ingress != nil { + in, out := &in.Ingress, &out.Ingress + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationPluginOverride. +func (in *AnnotationPluginOverride) DeepCopy() *AnnotationPluginOverride { + if in == nil { + return nil + } + out := new(AnnotationPluginOverride) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AnnotationPluginOverrideParentOverride) DeepCopyInto(out *AnnotationPluginOverrideParentOverride) { + *out = *in + if in.Deployment != nil { + in, out := &in.Deployment, &out.Deployment + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Service != nil { + in, out := &in.Service, &out.Service + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Ingress != nil { + in, out := &in.Ingress, &out.Ingress + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationPluginOverrideParentOverride. +func (in *AnnotationPluginOverrideParentOverride) DeepCopy() *AnnotationPluginOverrideParentOverride { + if in == nil { + return nil + } + out := new(AnnotationPluginOverrideParentOverride) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ApplyCommand) DeepCopyInto(out *ApplyCommand) { *out = *in @@ -1069,6 +1213,7 @@ func (in *Container) DeepCopyInto(out *Container) { *out = make([]EnvVar, len(*in)) copy(*out, *in) } + in.Annotation.DeepCopyInto(&out.Annotation) if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMount, len(*in)) @@ -1210,6 +1355,7 @@ func (in *ContainerParentOverride) DeepCopyInto(out *ContainerParentOverride) { *out = make([]EnvVarParentOverride, len(*in)) copy(*out, *in) } + in.Annotation.DeepCopyInto(&out.Annotation) if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMountParentOverride, len(*in)) @@ -1255,6 +1401,7 @@ func (in *ContainerPluginOverride) DeepCopyInto(out *ContainerPluginOverride) { *out = make([]EnvVarPluginOverride, len(*in)) copy(*out, *in) } + in.Annotation.DeepCopyInto(&out.Annotation) if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMountPluginOverride, len(*in)) @@ -1300,6 +1447,7 @@ func (in *ContainerPluginOverrideParentOverride) DeepCopyInto(out *ContainerPlug *out = make([]EnvVarPluginOverrideParentOverride, len(*in)) copy(*out, *in) } + in.Annotation.DeepCopyInto(&out.Annotation) if in.VolumeMounts != nil { in, out := &in.VolumeMounts, &out.VolumeMounts *out = make([]VolumeMountPluginOverrideParentOverride, len(*in)) diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go b/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go index 4886db49e..0db156580 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go @@ -384,6 +384,10 @@ type ContainerParentOverride struct { // - `$PROJECT_SOURCE` Env []EnvVarParentOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation AnnotationParentOverride `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMountParentOverride `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` @@ -589,6 +593,22 @@ type EnvVarParentOverride struct { Value string `json:"value,omitempty" yaml:"value"` } +// Annotation specifies the annotations to be added to specific resources +type AnnotationParentOverride struct { + + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + // Volume that should be mounted to a component container type VolumeMountParentOverride struct { @@ -1046,6 +1066,10 @@ type ContainerPluginOverrideParentOverride struct { // - `$PROJECT_SOURCE` Env []EnvVarPluginOverrideParentOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation AnnotationPluginOverrideParentOverride `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMountPluginOverrideParentOverride `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` @@ -1206,6 +1230,22 @@ type EnvVarPluginOverrideParentOverride struct { Value string `json:"value,omitempty" yaml:"value"` } +// Annotation specifies the annotations to be added to specific resources +type AnnotationPluginOverrideParentOverride struct { + + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + // Volume that should be mounted to a component container type VolumeMountPluginOverrideParentOverride struct { diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go b/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go index 93ccf8102..267bf5d99 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go @@ -254,6 +254,10 @@ type ContainerPluginOverride struct { // - `$PROJECT_SOURCE` Env []EnvVarPluginOverride `json:"env,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional + // Annotations that should be added to specific resources for this container + Annotation AnnotationPluginOverride `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + // +optional // List of volumes mounts that should be mounted is this container. VolumeMounts []VolumeMountPluginOverride `json:"volumeMounts,omitempty" patchStrategy:"merge" patchMergeKey:"name"` @@ -413,6 +417,22 @@ type EnvVarPluginOverride struct { Value string `json:"value,omitempty" yaml:"value"` } +// Annotation specifies the annotations to be added to specific resources +type AnnotationPluginOverride struct { + + // +optional + // Annotations to be added to deployment + Deployment map[string]string `json:"deployment,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to service + Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` +} + // Volume that should be mounted to a component container type VolumeMountPluginOverride struct { diff --git a/pkg/validation/commands_test.go b/pkg/validation/commands_test.go index 9b3e55e0d..28b89bfe8 100644 --- a/pkg/validation/commands_test.go +++ b/pkg/validation/commands_test.go @@ -72,7 +72,7 @@ func TestValidateCommands(t *testing.T) { component := "alias1" components := []v1alpha2.Component{ - generateDummyContainerComponent(component, nil, nil, nil), + generateDummyContainerComponent(component, nil, nil, nil, v1alpha2.Annotation{}, false), } duplicateKeyErr := "duplicate key: somecommand1" @@ -187,7 +187,7 @@ func TestValidateCommandComponent(t *testing.T) { nonexistComponent := "garbagealias" components := []v1alpha2.Component{ - generateDummyContainerComponent(containerComponent, nil, nil, nil), + generateDummyContainerComponent(containerComponent, nil, nil, nil, v1alpha2.Annotation{}, false), generateDummyKubernetesComponent(kubeComponent, nil, ""), generateDummyOpenshiftComponent(openshiftComponent, nil, ""), generateDummyImageComponent(imageComponent, v1alpha2.DockerfileSrc{}), @@ -287,7 +287,7 @@ func TestValidateCompositeCommand(t *testing.T) { generateDummyExecCommand("command3", component, &v1alpha2.CommandGroup{Kind: runGroup}), } components := []v1alpha2.Component{ - generateDummyContainerComponent(component, nil, nil, nil), + generateDummyContainerComponent(component, nil, nil, nil, v1alpha2.Annotation{}, false), } invalidCmdErr := ".*command does not map to a valid component" diff --git a/pkg/validation/components.go b/pkg/validation/components.go index 10b3c89ad..87d370c80 100644 --- a/pkg/validation/components.go +++ b/pkg/validation/components.go @@ -2,6 +2,7 @@ package validation import ( "fmt" + "reflect" "strings" "github.com/devfile/api/v2/pkg/apis/workspaces/v1alpha2" @@ -30,6 +31,10 @@ func ValidateComponents(components []v1alpha2.Component) (returnedErr error) { processedEndPointName := make(map[string]bool) processedEndPointPort := make(map[int]bool) processedComponentWithVolumeMounts := make(map[string]v1alpha2.Component) + processedDeploymentAnnotations := make(map[string]string) + processedServiceAnnotations := make(map[string]string) + deploymentAnnotationDuplication := make(map[string]bool) + serviceAnnotationDuplication := make(map[string]bool) err := v1alpha2.CheckDuplicateKeys(components) if err != nil { @@ -57,6 +62,35 @@ func ValidateComponents(components []v1alpha2.Component) (returnedErr error) { } } + // if annotation is not empty and dedicatedPod is false + if !reflect.DeepEqual(component.Container.Annotation, v1alpha2.Annotation{}) && component.Container.DedicatedPod != nil && !(*component.Container.DedicatedPod) { + for key, value := range component.Container.Annotation.Deployment { + if processedVal, exist := processedDeploymentAnnotations[key]; exist && processedVal != value { + // only append the error for a single key once + if _, exist := deploymentAnnotationDuplication[key]; !exist { + annotationConflictErr := &AnnotationConflictError{annotationName: key, annotationType: DeploymentAnnotation} + returnedErr = multierror.Append(returnedErr, annotationConflictErr) + deploymentAnnotationDuplication[key] = true + } + } else { + processedDeploymentAnnotations[key] = value + } + } + + for key, value := range component.Container.Annotation.Service { + if processedVal, exist := processedServiceAnnotations[key]; exist && processedVal != value { + // only append the error for a single key once + if _, exist := serviceAnnotationDuplication[key]; !exist { + annotationConflictErr := &AnnotationConflictError{annotationName: key, annotationType: ServiceAnnotation} + returnedErr = multierror.Append(returnedErr, annotationConflictErr) + serviceAnnotationDuplication[key] = true + } + } else { + processedServiceAnnotations[key] = value + } + } + } + err := validateEndpoints(component.Container.Endpoints, processedEndPointPort, processedEndPointName) if len(err) > 0 { for _, endpointErr := range err { diff --git a/pkg/validation/components_test.go b/pkg/validation/components_test.go index d97349ae1..e75e75a6d 100644 --- a/pkg/validation/components_test.go +++ b/pkg/validation/components_test.go @@ -10,10 +10,12 @@ import ( "github.com/stretchr/testify/assert" ) +var trueBool = true +var falseBool = false + // generateDummyContainerComponent returns a dummy container component for testing -func generateDummyContainerComponent(name string, volMounts []v1alpha2.VolumeMount, endpoints []v1alpha2.Endpoint, envs []v1alpha2.EnvVar) v1alpha2.Component { +func generateDummyContainerComponent(name string, volMounts []v1alpha2.VolumeMount, endpoints []v1alpha2.Endpoint, envs []v1alpha2.EnvVar, annotation v1alpha2.Annotation, dedicatedPod bool) v1alpha2.Component { image := "docker.io/maven:latest" - mountSources := true return v1alpha2.Component{ Name: name, @@ -21,9 +23,11 @@ func generateDummyContainerComponent(name string, volMounts []v1alpha2.VolumeMou Container: &v1alpha2.ContainerComponent{ Container: v1alpha2.Container{ Image: image, + Annotation: annotation, Env: envs, VolumeMounts: volMounts, - MountSources: &mountSources, + MountSources: &trueBool, + DedicatedPod: &dedicatedPod, }, Endpoints: endpoints, }}} @@ -228,6 +232,8 @@ func TestValidateComponents(t *testing.T) { imageCompTwoRemoteErr := "component .* should have one remote only" imageCompNoRemoteErr := "component .* should have at least one remote" imageCompInvalidRemoteErr := "unable to find the checkout remote .* in the remotes for component .*" + DeploymentAnnotationConflictErr := "deployment annotation: deploy-key1 has been declared multiple times and with different values" + ServiceAnnotationConflictErr := "service annotation: svc-key1 has been declared multiple times and with different values" pluginOverridesFromMainDevfile := attributes.Attributes{}.PutString(ImportSourceAttribute, "uri: http://127.0.0.1:8080").PutString(PluginOverrideAttribute, "main devfile") @@ -242,7 +248,7 @@ func TestValidateComponents(t *testing.T) { name: "Duplicate components present", components: []v1alpha2.Component{ generateDummyVolumeComponent("component1", "1Gi"), - generateDummyContainerComponent("component1", nil, nil, nil), + generateDummyContainerComponent("component1", nil, nil, nil, v1alpha2.Annotation{}, false), }, wantErr: []string{duplicateComponentErr}, }, @@ -250,21 +256,21 @@ func TestValidateComponents(t *testing.T) { name: "Valid container and volume component", components: []v1alpha2.Component{ generateDummyVolumeComponent("myvol", "1Gi"), - generateDummyContainerComponent("container", volMounts, nil, nil), - generateDummyContainerComponent("container2", volMounts, nil, nil), + generateDummyContainerComponent("container", volMounts, nil, nil, v1alpha2.Annotation{}, false), + generateDummyContainerComponent("container2", volMounts, nil, nil, v1alpha2.Annotation{}, false), }, }, { name: "Invalid container using reserved env PROJECT_SOURCE", components: []v1alpha2.Component{ - generateDummyContainerComponent("container1", nil, nil, projectSourceEnv), + generateDummyContainerComponent("container1", nil, nil, projectSourceEnv, v1alpha2.Annotation{}, false), }, wantErr: []string{reservedEnvErr}, }, { name: "Invalid container using reserved env PROJECTS_ROOT", components: []v1alpha2.Component{ - generateDummyContainerComponent("container", nil, nil, projectsRootEnv), + generateDummyContainerComponent("container", nil, nil, projectsRootEnv, v1alpha2.Annotation{}, false), }, wantErr: []string{reservedEnvErr}, }, @@ -272,7 +278,7 @@ func TestValidateComponents(t *testing.T) { name: "Invalid volume component size", components: []v1alpha2.Component{ generateDummyVolumeComponent("myvol", "invalid"), - generateDummyContainerComponent("container", nil, nil, nil), + generateDummyContainerComponent("container", nil, nil, nil, v1alpha2.Annotation{}, false), }, wantErr: []string{invalidSizeErr}, }, @@ -280,31 +286,155 @@ func TestValidateComponents(t *testing.T) { name: "Invalid volume mount referencing a wrong volume component", components: []v1alpha2.Component{ generateDummyVolumeComponent("myvol", "1Gi"), - generateDummyContainerComponent("container1", invalidVolMounts, nil, nil), + generateDummyContainerComponent("container1", invalidVolMounts, nil, nil, v1alpha2.Annotation{}, false), }, wantErr: []string{invalidVolMountErr}, }, { name: "Invalid containers with the same endpoint names", components: []v1alpha2.Component{ - generateDummyContainerComponent("name1", nil, []v1alpha2.Endpoint{endpointUrl18080}, nil), - generateDummyContainerComponent("name2", nil, []v1alpha2.Endpoint{endpointUrl18081}, nil), + generateDummyContainerComponent("name1", nil, []v1alpha2.Endpoint{endpointUrl18080}, nil, v1alpha2.Annotation{}, false), + generateDummyContainerComponent("name2", nil, []v1alpha2.Endpoint{endpointUrl18081}, nil, v1alpha2.Annotation{}, false), }, wantErr: []string{sameEndpointNameErr}, }, { name: "Invalid containers with the same endpoint target ports", components: []v1alpha2.Component{ - generateDummyContainerComponent("name1", nil, []v1alpha2.Endpoint{endpointUrl18080}, nil), - generateDummyContainerComponent("name2", nil, []v1alpha2.Endpoint{endpointUrl28080}, nil), + generateDummyContainerComponent("name1", nil, []v1alpha2.Endpoint{endpointUrl18080}, nil, v1alpha2.Annotation{}, false), + generateDummyContainerComponent("name2", nil, []v1alpha2.Endpoint{endpointUrl28080}, nil, v1alpha2.Annotation{}, false), }, wantErr: []string{sameTargetPortErr}, }, { name: "Valid container with same target ports but different endpoint name", components: []v1alpha2.Component{ - generateDummyContainerComponent("name1", nil, []v1alpha2.Endpoint{endpointUrl18080, endpointUrl28080}, nil), + generateDummyContainerComponent("name1", nil, []v1alpha2.Endpoint{endpointUrl18080, endpointUrl28080}, nil, v1alpha2.Annotation{}, false), + }, + }, + { + name: "Valid container with deployment, service and ingress annotations", + components: []v1alpha2.Component{ + generateDummyContainerComponent("name1", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value1", + "deploy-key2": "deploy-value2", + }, + Service: map[string]string{ + "svc-key1": "svc-value1", + "svc-key2": "svc-value2", + }, + Ingress: map[string]string{ + "ingress-key1": "ingress-value1", + "ingress-key2": "ingress-value2", + }, + }, false), + }, + }, + { + name: "Valid containers with different key and value pairs for deployment, service and ingress annotations", + components: []v1alpha2.Component{ + generateDummyContainerComponent("name1", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value1", + }, + Service: map[string]string{ + "svc-key1": "svc-value1", + }, + Ingress: map[string]string{ + "ingress-key1": "ingress-value1", + }, + }, false), + generateDummyContainerComponent("name2", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key2": "deploy-value2", + }, + Service: map[string]string{ + "svc-key2": "svc-value2", + }, + Ingress: map[string]string{ + "ingress-key2": "ingress-value2", + }, + }, false), + }, + }, + { + name: "Valid containers with same key and value pairs for deployment, service and ingress annotations", + components: []v1alpha2.Component{ + generateDummyContainerComponent("name1", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value1", + }, + Service: map[string]string{ + "svc-key1": "svc-value1", + }, + Ingress: map[string]string{ + "ingress-key1": "ingress-value1", + }, + }, false), + generateDummyContainerComponent("name2", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value1", + }, + Service: map[string]string{ + "svc-key1": "svc-value1", + }, + Ingress: map[string]string{ + "ingress-key1": "ingress-value1", + }, + }, false), + }, + }, + { + name: "Valid containers with conflict key and value pairs for deployment and service annotations when dedicatedPod is set to true", + components: []v1alpha2.Component{ + generateDummyContainerComponent("name1", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value1", + }, + Service: map[string]string{ + "svc-key1": "svc-value1", + }, + }, false), + generateDummyContainerComponent("name2", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value2", + }, + Service: map[string]string{ + "svc-key1": "svc-value2", + }, + }, true), + }, + }, + { + name: "Invalid containers with conflict key and value pairs for deployment and service annotations when dedicatedPod is set to false", + components: []v1alpha2.Component{ + generateDummyContainerComponent("name1", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value1", + }, + Service: map[string]string{ + "svc-key1": "svc-value1", + }, + }, false), + generateDummyContainerComponent("name2", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value2", + }, + Service: map[string]string{ + "svc-key1": "svc-value2", + }, + }, false), + generateDummyContainerComponent("name3", nil, nil, nil, v1alpha2.Annotation{ + Deployment: map[string]string{ + "deploy-key1": "deploy-value2", + }, + Service: map[string]string{ + "svc-key1": "svc-value2", + }, + }, false), }, + wantErr: []string{DeploymentAnnotationConflictErr, ServiceAnnotationConflictErr}, }, { name: "Invalid Openshift Component with bad URI", diff --git a/pkg/validation/errors.go b/pkg/validation/errors.go index efb42a8c8..5524d5d9b 100644 --- a/pkg/validation/errors.go +++ b/pkg/validation/errors.go @@ -161,6 +161,23 @@ func (e *InvalidProjectCheckoutRemoteError) Error() string { return fmt.Sprintf("unable to find the checkout remote %s in the remotes for %s %s", e.checkoutRemote, e.objectType, e.objectName) } +type AnnotationType string + +const ( + DeploymentAnnotation AnnotationType = "deployment" + ServiceAnnotation AnnotationType = "service" +) + +//AnnotationConflictError returns an error if an annotation has been declared with conflict values +type AnnotationConflictError struct { + annotationName string + annotationType AnnotationType +} + +func (e *AnnotationConflictError) Error() string { + return fmt.Sprintf("%v annotation: %v has been declared multiple times and with different values", e.annotationType, e.annotationName) +} + // resolveErrorMessageWithImportAttributes returns an updated error message // with detailed information on the imported and overriden resource. // example: diff --git a/pkg/validation/validation-rule.md b/pkg/validation/validation-rule.md index e72d47bcf..1583adf89 100644 --- a/pkg/validation/validation-rule.md +++ b/pkg/validation/validation-rule.md @@ -34,6 +34,7 @@ Common rules for all components types: #### Container component 1. the container components must reference a valid volume component if it uses volume mounts, and the volume components are unique 2. `PROJECT_SOURCE` or `PROJECTS_ROOT` are reserved environment variables defined under env, cannot be defined again in `env` +3. the annotations should not have conflict values for same key, except deployment annotations and service annotations set for a container with `dedicatedPod=true` #### Plugin Component - Commands in plugins components share the same commands validation rules as listed above. Validation occurs after overriding and merging, in flattened devfile diff --git a/schemas/latest/dev-workspace-template-spec.json b/schemas/latest/dev-workspace-template-spec.json index 0c5d7ef5f..d7d800821 100644 --- a/schemas/latest/dev-workspace-template-spec.json +++ b/schemas/latest/dev-workspace-template-spec.json @@ -327,6 +327,34 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1041,6 +1069,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1829,6 +1885,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2503,6 +2587,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/dev-workspace-template.json b/schemas/latest/dev-workspace-template.json index dab315317..dc348471e 100644 --- a/schemas/latest/dev-workspace-template.json +++ b/schemas/latest/dev-workspace-template.json @@ -493,6 +493,34 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1207,6 +1235,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1995,6 +2051,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2669,6 +2753,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/dev-workspace.json b/schemas/latest/dev-workspace.json index c9a8b1b60..ef43d355b 100644 --- a/schemas/latest/dev-workspace.json +++ b/schemas/latest/dev-workspace.json @@ -506,6 +506,34 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1220,6 +1248,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2008,6 +2064,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2682,6 +2766,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/devfile.json b/schemas/latest/devfile.json index 585a16fab..17f5be5af 100644 --- a/schemas/latest/devfile.json +++ b/schemas/latest/devfile.json @@ -266,6 +266,34 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1098,6 +1126,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/ide-targeted/dev-workspace-template-spec.json b/schemas/latest/ide-targeted/dev-workspace-template-spec.json index 7efab824e..6dfc290d3 100644 --- a/schemas/latest/ide-targeted/dev-workspace-template-spec.json +++ b/schemas/latest/ide-targeted/dev-workspace-template-spec.json @@ -362,6 +362,38 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1148,6 +1180,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2031,6 +2095,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2781,6 +2877,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/ide-targeted/dev-workspace-template.json b/schemas/latest/ide-targeted/dev-workspace-template.json index bc320a5bf..d0a19408e 100644 --- a/schemas/latest/ide-targeted/dev-workspace-template.json +++ b/schemas/latest/ide-targeted/dev-workspace-template.json @@ -561,6 +561,38 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1347,6 +1379,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2230,6 +2294,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2980,6 +3076,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/ide-targeted/dev-workspace.json b/schemas/latest/ide-targeted/dev-workspace.json index 5d5fc8bf8..d554d089c 100644 --- a/schemas/latest/ide-targeted/dev-workspace.json +++ b/schemas/latest/ide-targeted/dev-workspace.json @@ -574,6 +574,38 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1360,6 +1392,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2243,6 +2307,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -2993,6 +3089,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/ide-targeted/devfile.json b/schemas/latest/ide-targeted/devfile.json index 1d6011c44..fedf97a7e 100644 --- a/schemas/latest/ide-targeted/devfile.json +++ b/schemas/latest/ide-targeted/devfile.json @@ -294,6 +294,38 @@ "image" ], "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1221,6 +1253,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/ide-targeted/parent-overrides.json b/schemas/latest/ide-targeted/parent-overrides.json index 8a238b797..c4825795f 100644 --- a/schemas/latest/ide-targeted/parent-overrides.json +++ b/schemas/latest/ide-targeted/parent-overrides.json @@ -276,6 +276,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -1026,6 +1058,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/ide-targeted/plugin-overrides.json b/schemas/latest/ide-targeted/plugin-overrides.json index 6cd389dce..6939f03e2 100644 --- a/schemas/latest/ide-targeted/plugin-overrides.json +++ b/schemas/latest/ide-targeted/plugin-overrides.json @@ -265,6 +265,38 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to deployment" + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to service" + } + }, + "additionalProperties": false, + "markdownDescription": "Annotations that should be added to specific resources for this container" + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/parent-overrides.json b/schemas/latest/parent-overrides.json index f005314f6..cf8b49fad 100644 --- a/schemas/latest/parent-overrides.json +++ b/schemas/latest/parent-overrides.json @@ -247,6 +247,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", @@ -921,6 +949,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", diff --git a/schemas/latest/plugin-overrides.json b/schemas/latest/plugin-overrides.json index f3e07779f..1d6e0febc 100644 --- a/schemas/latest/plugin-overrides.json +++ b/schemas/latest/plugin-overrides.json @@ -237,6 +237,34 @@ "description": "Allows adding and configuring devworkspace-related containers", "type": "object", "properties": { + "annotation": { + "description": "Annotations that should be added to specific resources for this container", + "type": "object", + "properties": { + "deployment": { + "description": "Annotations to be added to deployment", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "ingress": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "service": { + "description": "Annotations to be added to service", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "additionalProperties": false + }, "args": { "description": "The arguments to supply to the command running the dockerimage component. The arguments are supplied either to the default command provided in the image or to the overridden command.\n\nDefaults to an empty array, meaning use whatever is defined in the image.", "type": "array", From c77edcd2906a0ac700e04f32315dcb58d8131c68 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Wed, 27 Oct 2021 16:53:35 -0400 Subject: [PATCH 2/3] cleanup Signed-off-by: Stephanie --- pkg/validation/components_test.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pkg/validation/components_test.go b/pkg/validation/components_test.go index e75e75a6d..3934f231a 100644 --- a/pkg/validation/components_test.go +++ b/pkg/validation/components_test.go @@ -10,12 +10,10 @@ import ( "github.com/stretchr/testify/assert" ) -var trueBool = true -var falseBool = false - // generateDummyContainerComponent returns a dummy container component for testing func generateDummyContainerComponent(name string, volMounts []v1alpha2.VolumeMount, endpoints []v1alpha2.Endpoint, envs []v1alpha2.EnvVar, annotation v1alpha2.Annotation, dedicatedPod bool) v1alpha2.Component { image := "docker.io/maven:latest" + mountSources := true return v1alpha2.Component{ Name: name, @@ -26,7 +24,7 @@ func generateDummyContainerComponent(name string, volMounts []v1alpha2.VolumeMou Annotation: annotation, Env: envs, VolumeMounts: volMounts, - MountSources: &trueBool, + MountSources: &mountSources, DedicatedPod: &dedicatedPod, }, Endpoints: endpoints, From 4db573663a4faf9490ed41db9befec74563ae6d7 Mon Sep 17 00:00:00 2001 From: Stephanie Date: Mon, 1 Nov 2021 11:37:08 -0400 Subject: [PATCH 3/3] move ingress/route annotation to endpoints Signed-off-by: Stephanie --- ...pace.devfile.io_devworkspaces.v1beta1.yaml | 100 ++++++++++---- crds/workspace.devfile.io_devworkspaces.yaml | 103 ++++++++++---- ...file.io_devworkspacetemplates.v1beta1.yaml | 96 +++++++++---- ...pace.devfile.io_devworkspacetemplates.yaml | 99 ++++++++++---- .../v1alpha2/component_container.go | 4 - pkg/apis/workspaces/v1alpha2/endpoint.go | 4 + .../v1alpha2/zz_generated.deepcopy.go | 56 ++++---- .../v1alpha2/zz_generated.parent_overrides.go | 16 +-- .../v1alpha2/zz_generated.plugin_overrides.go | 8 +- pkg/validation/components_test.go | 16 --- .../latest/dev-workspace-template-spec.json | 112 +++++++++++---- schemas/latest/dev-workspace-template.json | 112 +++++++++++---- schemas/latest/dev-workspace.json | 112 +++++++++++---- schemas/latest/devfile.json | 56 ++++++-- .../dev-workspace-template-spec.json | 128 +++++++++++++----- .../ide-targeted/dev-workspace-template.json | 128 +++++++++++++----- .../latest/ide-targeted/dev-workspace.json | 128 +++++++++++++----- schemas/latest/ide-targeted/devfile.json | 64 ++++++--- .../latest/ide-targeted/parent-overrides.json | 64 ++++++--- .../latest/ide-targeted/plugin-overrides.json | 32 +++-- schemas/latest/parent-overrides.json | 56 ++++++-- schemas/latest/plugin-overrides.json | 28 +++- 22 files changed, 1109 insertions(+), 413 deletions(-) diff --git a/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml b/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml index b639f68a5..2c06de8db 100644 --- a/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml +++ b/crds/workspace.devfile.io_devworkspaces.v1beta1.yaml @@ -344,12 +344,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -386,6 +380,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -669,6 +669,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -777,6 +783,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -1113,12 +1125,6 @@ spec: description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to - Kubernetes Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -1157,6 +1163,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -1431,6 +1443,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -1549,6 +1567,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -1996,12 +2020,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -2039,6 +2057,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2298,6 +2322,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2407,6 +2437,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2750,13 +2786,6 @@ spec: description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added - to Kubernetes Ingress or Openshift - Route - type: object service: additionalProperties: type: string @@ -2797,6 +2826,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -3088,6 +3124,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -3212,6 +3255,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. diff --git a/crds/workspace.devfile.io_devworkspaces.yaml b/crds/workspace.devfile.io_devworkspaces.yaml index 690ddc87b..9557700f3 100644 --- a/crds/workspace.devfile.io_devworkspaces.yaml +++ b/crds/workspace.devfile.io_devworkspaces.yaml @@ -348,12 +348,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -391,6 +385,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -679,6 +679,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -790,6 +796,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -1131,12 +1143,6 @@ spec: description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to - Kubernetes Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -1176,6 +1182,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -1457,6 +1470,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -1577,6 +1597,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -2028,12 +2055,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -2071,6 +2092,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2335,6 +2362,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2446,6 +2479,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2795,13 +2834,6 @@ spec: description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added - to Kubernetes Ingress or Openshift - Route - type: object service: additionalProperties: type: string @@ -2843,6 +2875,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -3138,6 +3177,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -3265,6 +3311,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. diff --git a/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml b/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml index 6a04a05b1..5eacc6423 100644 --- a/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml +++ b/crds/workspace.devfile.io_devworkspacetemplates.v1beta1.yaml @@ -315,12 +315,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes Ingress - or Openshift Route - type: object service: additionalProperties: type: string @@ -356,6 +350,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes Ingress + or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -633,6 +633,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes Ingress + or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -735,6 +741,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes Ingress + or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -1062,12 +1074,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -1105,6 +1111,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -1369,6 +1381,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -1480,6 +1498,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -1908,12 +1932,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -1950,6 +1968,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -2202,6 +2226,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -2309,6 +2339,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -2644,12 +2680,6 @@ spec: description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to - Kubernetes Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -2688,6 +2718,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -2962,6 +2998,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -3080,6 +3122,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n diff --git a/crds/workspace.devfile.io_devworkspacetemplates.yaml b/crds/workspace.devfile.io_devworkspacetemplates.yaml index ee88b41e9..7c4443039 100644 --- a/crds/workspace.devfile.io_devworkspacetemplates.yaml +++ b/crds/workspace.devfile.io_devworkspacetemplates.yaml @@ -319,12 +319,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes Ingress - or Openshift Route - type: object service: additionalProperties: type: string @@ -360,6 +354,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -642,6 +642,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -749,6 +755,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples of Che-specific @@ -1082,12 +1094,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -1125,6 +1131,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -1393,6 +1405,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -1506,6 +1524,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to + Kubernetes Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n @@ -1941,12 +1965,6 @@ spec: type: string description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to Kubernetes - Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -1984,6 +2002,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2238,6 +2262,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2346,6 +2376,12 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added to Kubernetes + Ingress or Openshift Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. \n Examples @@ -2684,12 +2720,6 @@ spec: description: Annotations to be added to deployment type: object - ingress: - additionalProperties: - type: string - description: Annotations to be added to - Kubernetes Ingress or Openshift Route - type: object service: additionalProperties: type: string @@ -2729,6 +2759,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -3010,6 +3047,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. @@ -3130,6 +3174,13 @@ spec: endpoints: items: properties: + annotation: + additionalProperties: + type: string + description: Annotations to be added + to Kubernetes Ingress or Openshift + Route + type: object attributes: description: "Map of implementation-dependant string-based free-form attributes. diff --git a/pkg/apis/workspaces/v1alpha2/component_container.go b/pkg/apis/workspaces/v1alpha2/component_container.go index bc06234f5..15faa935c 100644 --- a/pkg/apis/workspaces/v1alpha2/component_container.go +++ b/pkg/apis/workspaces/v1alpha2/component_container.go @@ -16,10 +16,6 @@ type Annotation struct { // +optional // Annotations to be added to service Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` - - // +optional - // Annotations to be added to Kubernetes Ingress or Openshift Route - Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // +devfile:getter:generate diff --git a/pkg/apis/workspaces/v1alpha2/endpoint.go b/pkg/apis/workspaces/v1alpha2/endpoint.go index 3cf10d8ea..ea4b9bec8 100644 --- a/pkg/apis/workspaces/v1alpha2/endpoint.go +++ b/pkg/apis/workspaces/v1alpha2/endpoint.go @@ -112,4 +112,8 @@ type Endpoint struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go index 83c8af937..873e88d0d 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.deepcopy.go @@ -26,13 +26,6 @@ func (in *Annotation) DeepCopyInto(out *Annotation) { (*out)[key] = val } } - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Annotation. @@ -62,13 +55,6 @@ func (in *AnnotationParentOverride) DeepCopyInto(out *AnnotationParentOverride) (*out)[key] = val } } - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationParentOverride. @@ -98,13 +84,6 @@ func (in *AnnotationPluginOverride) DeepCopyInto(out *AnnotationPluginOverride) (*out)[key] = val } } - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationPluginOverride. @@ -134,13 +113,6 @@ func (in *AnnotationPluginOverrideParentOverride) DeepCopyInto(out *AnnotationPl (*out)[key] = val } } - if in.Ingress != nil { - in, out := &in.Ingress, &out.Ingress - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnnotationPluginOverrideParentOverride. @@ -2234,6 +2206,13 @@ func (in *Endpoint) DeepCopyInto(out *Endpoint) { (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint. @@ -2261,6 +2240,13 @@ func (in *EndpointParentOverride) DeepCopyInto(out *EndpointParentOverride) { (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointParentOverride. @@ -2288,6 +2274,13 @@ func (in *EndpointPluginOverride) DeepCopyInto(out *EndpointPluginOverride) { (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPluginOverride. @@ -2315,6 +2308,13 @@ func (in *EndpointPluginOverrideParentOverride) DeepCopyInto(out *EndpointPlugin (*out)[key] = *val.DeepCopy() } } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointPluginOverrideParentOverride. diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go b/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go index 0db156580..278b8b439 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.parent_overrides.go @@ -503,6 +503,10 @@ type EndpointParentOverride struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } type K8sLikeComponentParentOverride struct { @@ -603,10 +607,6 @@ type AnnotationParentOverride struct { // +optional // Annotations to be added to service Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` - - // +optional - // Annotations to be added to Kubernetes Ingress or Openshift Route - Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // Volume that should be mounted to a component container @@ -1185,6 +1185,10 @@ type EndpointPluginOverrideParentOverride struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } type K8sLikeComponentPluginOverrideParentOverride struct { @@ -1240,10 +1244,6 @@ type AnnotationPluginOverrideParentOverride struct { // +optional // Annotations to be added to service Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` - - // +optional - // Annotations to be added to Kubernetes Ingress or Openshift Route - Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // Volume that should be mounted to a component container diff --git a/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go b/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go index 267bf5d99..71cb6e150 100644 --- a/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go +++ b/pkg/apis/workspaces/v1alpha2/zz_generated.plugin_overrides.go @@ -373,6 +373,10 @@ type EndpointPluginOverride struct { // +kubebuilder:pruning:PreserveUnknownFields // +kubebuilder:validation:Schemaless Attributes attributes.Attributes `json:"attributes,omitempty"` + + // +optional + // Annotations to be added to Kubernetes Ingress or Openshift Route + Annotations map[string]string `json:"annotation,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } type K8sLikeComponentPluginOverride struct { @@ -427,10 +431,6 @@ type AnnotationPluginOverride struct { // +optional // Annotations to be added to service Service map[string]string `json:"service,omitempty" patchStrategy:"merge" patchMergeKey:"name"` - - // +optional - // Annotations to be added to Kubernetes Ingress or Openshift Route - Ingress map[string]string `json:"ingress,omitempty" patchStrategy:"merge" patchMergeKey:"name"` } // Volume that should be mounted to a component container diff --git a/pkg/validation/components_test.go b/pkg/validation/components_test.go index 3934f231a..54fe512f8 100644 --- a/pkg/validation/components_test.go +++ b/pkg/validation/components_test.go @@ -322,10 +322,6 @@ func TestValidateComponents(t *testing.T) { "svc-key1": "svc-value1", "svc-key2": "svc-value2", }, - Ingress: map[string]string{ - "ingress-key1": "ingress-value1", - "ingress-key2": "ingress-value2", - }, }, false), }, }, @@ -339,9 +335,6 @@ func TestValidateComponents(t *testing.T) { Service: map[string]string{ "svc-key1": "svc-value1", }, - Ingress: map[string]string{ - "ingress-key1": "ingress-value1", - }, }, false), generateDummyContainerComponent("name2", nil, nil, nil, v1alpha2.Annotation{ Deployment: map[string]string{ @@ -350,9 +343,6 @@ func TestValidateComponents(t *testing.T) { Service: map[string]string{ "svc-key2": "svc-value2", }, - Ingress: map[string]string{ - "ingress-key2": "ingress-value2", - }, }, false), }, }, @@ -366,9 +356,6 @@ func TestValidateComponents(t *testing.T) { Service: map[string]string{ "svc-key1": "svc-value1", }, - Ingress: map[string]string{ - "ingress-key1": "ingress-value1", - }, }, false), generateDummyContainerComponent("name2", nil, nil, nil, v1alpha2.Annotation{ Deployment: map[string]string{ @@ -377,9 +364,6 @@ func TestValidateComponents(t *testing.T) { Service: map[string]string{ "svc-key1": "svc-value1", }, - Ingress: map[string]string{ - "ingress-key1": "ingress-value1", - }, }, false), }, }, diff --git a/schemas/latest/dev-workspace-template-spec.json b/schemas/latest/dev-workspace-template-spec.json index d7d800821..9d26a2d10 100644 --- a/schemas/latest/dev-workspace-template-spec.json +++ b/schemas/latest/dev-workspace-template-spec.json @@ -338,13 +338,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -388,6 +381,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -664,6 +664,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -754,6 +761,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1080,13 +1094,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1129,6 +1136,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1371,6 +1385,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1458,6 +1479,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1896,13 +1924,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1945,6 +1966,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2187,6 +2215,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2274,6 +2309,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2598,13 +2640,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2647,6 +2682,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2889,6 +2931,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2976,6 +3025,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/dev-workspace-template.json b/schemas/latest/dev-workspace-template.json index dc348471e..cc4c04d12 100644 --- a/schemas/latest/dev-workspace-template.json +++ b/schemas/latest/dev-workspace-template.json @@ -504,13 +504,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -554,6 +547,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -830,6 +830,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -920,6 +927,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1246,13 +1260,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1295,6 +1302,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1537,6 +1551,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1624,6 +1645,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2062,13 +2090,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2111,6 +2132,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2353,6 +2381,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2440,6 +2475,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2764,13 +2806,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2813,6 +2848,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3055,6 +3097,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3142,6 +3191,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/dev-workspace.json b/schemas/latest/dev-workspace.json index ef43d355b..7fb25123c 100644 --- a/schemas/latest/dev-workspace.json +++ b/schemas/latest/dev-workspace.json @@ -517,13 +517,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -567,6 +560,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -843,6 +843,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -933,6 +940,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1259,13 +1273,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1308,6 +1315,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1550,6 +1564,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1637,6 +1658,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2075,13 +2103,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2124,6 +2145,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2366,6 +2394,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2453,6 +2488,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2777,13 +2819,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2826,6 +2861,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3068,6 +3110,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3155,6 +3204,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/devfile.json b/schemas/latest/devfile.json index 17f5be5af..c3acf1604 100644 --- a/schemas/latest/devfile.json +++ b/schemas/latest/devfile.json @@ -277,13 +277,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -327,6 +320,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -583,6 +583,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -673,6 +680,13 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1137,13 +1151,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1186,6 +1193,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1428,6 +1442,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1515,6 +1536,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/ide-targeted/dev-workspace-template-spec.json b/schemas/latest/ide-targeted/dev-workspace-template-spec.json index 6dfc290d3..8b5d8e64f 100644 --- a/schemas/latest/ide-targeted/dev-workspace-template-spec.json +++ b/schemas/latest/ide-targeted/dev-workspace-template-spec.json @@ -374,14 +374,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -430,6 +422,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -735,6 +735,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -832,6 +840,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1192,14 +1208,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1247,6 +1255,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1518,6 +1534,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1614,6 +1638,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2107,14 +2139,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2162,6 +2186,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2433,6 +2465,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2529,6 +2569,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2889,14 +2937,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2944,6 +2984,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3215,6 +3263,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3311,6 +3367,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/ide-targeted/dev-workspace-template.json b/schemas/latest/ide-targeted/dev-workspace-template.json index d0a19408e..d3cbc5983 100644 --- a/schemas/latest/ide-targeted/dev-workspace-template.json +++ b/schemas/latest/ide-targeted/dev-workspace-template.json @@ -573,14 +573,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -629,6 +621,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -934,6 +934,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1031,6 +1039,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1391,14 +1407,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1446,6 +1454,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1717,6 +1733,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1813,6 +1837,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2306,14 +2338,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2361,6 +2385,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2632,6 +2664,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2728,6 +2768,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3088,14 +3136,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -3143,6 +3183,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3414,6 +3462,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3510,6 +3566,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/ide-targeted/dev-workspace.json b/schemas/latest/ide-targeted/dev-workspace.json index d554d089c..9ad876bd7 100644 --- a/schemas/latest/ide-targeted/dev-workspace.json +++ b/schemas/latest/ide-targeted/dev-workspace.json @@ -586,14 +586,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -642,6 +634,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -947,6 +947,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1044,6 +1052,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1404,14 +1420,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1459,6 +1467,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1730,6 +1746,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1826,6 +1850,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2319,14 +2351,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -2374,6 +2398,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2645,6 +2677,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -2741,6 +2781,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3101,14 +3149,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -3156,6 +3196,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3427,6 +3475,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -3523,6 +3579,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/ide-targeted/devfile.json b/schemas/latest/ide-targeted/devfile.json index fedf97a7e..135df2566 100644 --- a/schemas/latest/ide-targeted/devfile.json +++ b/schemas/latest/ide-targeted/devfile.json @@ -306,14 +306,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -362,6 +354,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -644,6 +644,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -741,6 +749,14 @@ "targetPort" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1265,14 +1281,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1320,6 +1328,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1591,6 +1607,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1687,6 +1711,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/ide-targeted/parent-overrides.json b/schemas/latest/ide-targeted/parent-overrides.json index c4825795f..00b9d73b4 100644 --- a/schemas/latest/ide-targeted/parent-overrides.json +++ b/schemas/latest/ide-targeted/parent-overrides.json @@ -288,14 +288,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -343,6 +335,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -614,6 +614,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -710,6 +718,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1070,14 +1086,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1125,6 +1133,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1396,6 +1412,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1492,6 +1516,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/ide-targeted/plugin-overrides.json b/schemas/latest/ide-targeted/plugin-overrides.json index 6939f03e2..ff3b8337f 100644 --- a/schemas/latest/ide-targeted/plugin-overrides.json +++ b/schemas/latest/ide-targeted/plugin-overrides.json @@ -277,14 +277,6 @@ }, "markdownDescription": "Annotations to be added to deployment" }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -332,6 +324,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -603,6 +603,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -699,6 +707,14 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "markdownDescription": "Annotations to be added to Kubernetes Ingress or Openshift Route" + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/parent-overrides.json b/schemas/latest/parent-overrides.json index cf8b49fad..a55ebff94 100644 --- a/schemas/latest/parent-overrides.json +++ b/schemas/latest/parent-overrides.json @@ -258,13 +258,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -307,6 +300,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -549,6 +549,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -636,6 +643,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -960,13 +974,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -1009,6 +1016,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1251,6 +1265,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -1338,6 +1359,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", diff --git a/schemas/latest/plugin-overrides.json b/schemas/latest/plugin-overrides.json index 1d6e0febc..b82952580 100644 --- a/schemas/latest/plugin-overrides.json +++ b/schemas/latest/plugin-overrides.json @@ -248,13 +248,6 @@ "type": "string" } }, - "ingress": { - "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, "service": { "description": "Annotations to be added to service", "type": "object", @@ -297,6 +290,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -539,6 +539,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object", @@ -626,6 +633,13 @@ "name" ], "properties": { + "annotation": { + "description": "Annotations to be added to Kubernetes Ingress or Openshift Route", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, "attributes": { "description": "Map of implementation-dependant string-based free-form attributes.\n\nExamples of Che-specific attributes:\n- cookiesAuthEnabled: \"true\" / \"false\",\n- type: \"terminal\" / \"ide\" / \"ide-dev\",", "type": "object",