diff --git a/apis/types/types.go b/apis/types/types.go index fb845062a..8b43a1907 100644 --- a/apis/types/types.go +++ b/apis/types/types.go @@ -36,8 +36,18 @@ const ( ) const ( - // AnnDescription is the annotation which describe what is the capability used for in a WorkloadDefinition/TraitDefinition Object - AnnDescription = "definition.oam.dev/description" + // AnnoDefinitionDescription is the annotation which describe what is the capability used for in a WorkloadDefinition/TraitDefinition Object + AnnoDefinitionDescription = "definition.oam.dev/description" + // AnnoDefinitionAppliedWorkloads is the annotation which describe what is the workloads used for in a TraitDefinition Object + AnnoDefinitionAppliedWorkloads = "definition.oam.dev/appliedWorkloads" + // LabelDefinition is the label for definition + LabelDefinition = "definition.oam.dev" + // LabelDefinitionName is the label for definition name + LabelDefinitionName = "definition.oam.dev/name" + // LabelDefinitionDeprecated is the label which describe whether the capability is deprecated + LabelDefinitionDeprecated = "custom.definition.oam.dev/deprecated" + // LabelDefinitionHidden is the label which describe whether the capability is hidden by UI + LabelDefinitionHidden = "custom.definition.oam.dev/ui-hidden" ) const ( diff --git a/charts/vela-core/templates/addons/fluxcd.yaml b/charts/vela-core/templates/addons/fluxcd.yaml index b432630b0..35021e140 100644 --- a/charts/vela-core/templates/addons/fluxcd.yaml +++ b/charts/vela-core/templates/addons/fluxcd.yaml @@ -5766,8 +5766,6 @@ data: annotations: definition.oam.dev/description: helm release is a group of K8s resources from either git repository or helm repo - labels: - custom.definition.oam.dev/ui-hidden: "true" name: helm namespace: vela-system spec: @@ -5846,8 +5844,6 @@ data: metadata: annotations: definition.oam.dev/description: A list of JSON6902 patch to selected target - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize-json-patch spec: schematic: @@ -5873,8 +5869,6 @@ data: annotations: definition.oam.dev/description: A list of StrategicMerge or JSON6902 patch to selected target - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize-patch spec: schematic: @@ -5898,8 +5892,6 @@ data: annotations: definition.oam.dev/description: kustomize can fetching, building, updating and applying Kustomize manifests from git repo. - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize namespace: vela-system spec: @@ -6011,8 +6003,6 @@ data: metadata: annotations: definition.oam.dev/description: A list of strategic merge to kustomize config - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize-strategy-merge spec: schematic: diff --git a/charts/vela-core/templates/addons/istio.yaml b/charts/vela-core/templates/addons/istio.yaml index c1d3a7175..8e4be31e2 100644 --- a/charts/vela-core/templates/addons/istio.yaml +++ b/charts/vela-core/templates/addons/istio.yaml @@ -30,8 +30,6 @@ data: apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: canary-rollout namespace: vela-system spec: @@ -101,8 +99,6 @@ data: metadata: annotations: definition.oam.dev/description: use istio to manage in-cluster traffic - labels: - custom.definition.oam.dev/ui-hidden: "true" name: istio-gateway namespace: vela-system spec: @@ -132,8 +128,6 @@ data: apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: canary-rollback namespace: vela-system spec: @@ -212,8 +206,6 @@ data: metadata: annotations: definition.oam.dev/description: use istio to manage traffic - labels: - custom.definition.oam.dev/ui-hidden: "true" name: canary-traffic namespace: vela-system spec: diff --git a/charts/vela-core/templates/addons/kruise.yaml b/charts/vela-core/templates/addons/kruise.yaml index 5027ff4d7..2a57c3a77 100644 --- a/charts/vela-core/templates/addons/kruise.yaml +++ b/charts/vela-core/templates/addons/kruise.yaml @@ -31,8 +31,6 @@ data: services that have a stable network endpoint to receive external network traffic from customers. If workload type is skipped for any service defined in Appfile, it will be defaulted to `webservice` type. - labels: - custom.definition.oam.dev/ui-hidden: "true" name: cloneset namespace: vela-system spec: @@ -142,8 +140,6 @@ data: apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: predownloadimage spec: schematic: diff --git a/charts/vela-core/templates/addons/terraform.yaml b/charts/vela-core/templates/addons/terraform.yaml index 40525d084..d095eaaab 100644 --- a/charts/vela-core/templates/addons/terraform.yaml +++ b/charts/vela-core/templates/addons/terraform.yaml @@ -27,7 +27,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud ACK cluster labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-ack namespace: vela-system @@ -51,7 +50,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Serverless Kubernetes (ASK) labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-ask namespace: vela-system @@ -75,7 +73,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Elastic IP labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-eip namespace: vela-system @@ -100,7 +97,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud OSS object labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-oss namespace: vela-system @@ -131,7 +127,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud RDS object labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-rds namespace: vela-system @@ -212,7 +207,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Redis labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-redis namespace: vela-system @@ -235,7 +229,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud SLS Project labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-sls-project namespace: vela-system @@ -259,7 +252,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud SLS Store labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-sls-store namespace: vela-system @@ -283,7 +275,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud VPC labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-vpc namespace: vela-system @@ -307,7 +298,6 @@ data: definition.oam.dev/description: Terraform configuration for Alibaba Cloud VSwitch labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-vswitch namespace: vela-system @@ -330,7 +320,6 @@ data: annotations: definition.oam.dev/description: Terraform configuration for AWS S3 labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: aws-s3 namespace: vela-system @@ -373,7 +362,6 @@ data: Mariadb provider: azure labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: azure-database-mariadb namespace: vela-system @@ -490,7 +478,6 @@ data: Account provider: azure labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: azure-storage-account namespace: vela-system diff --git a/charts/vela-core/templates/defwithtemplate/task.yaml b/charts/vela-core/templates/defwithtemplate/task.yaml index 0bd455e0c..242cb68be 100644 --- a/charts/vela-core/templates/defwithtemplate/task.yaml +++ b/charts/vela-core/templates/defwithtemplate/task.yaml @@ -248,4 +248,5 @@ spec: definition: apiVersion: batch/v1 kind: Job + type: jobs.batch diff --git a/charts/vela-core/templates/defwithtemplate/webservice.yaml b/charts/vela-core/templates/defwithtemplate/webservice.yaml index fc0f40d7e..f8b5ada1e 100644 --- a/charts/vela-core/templates/defwithtemplate/webservice.yaml +++ b/charts/vela-core/templates/defwithtemplate/webservice.yaml @@ -509,4 +509,5 @@ spec: definition: apiVersion: apps/v1 kind: Deployment + type: deployments.apps diff --git a/charts/vela-core/templates/defwithtemplate/worker.yaml b/charts/vela-core/templates/defwithtemplate/worker.yaml index 435419cb1..b3daf6009 100644 --- a/charts/vela-core/templates/defwithtemplate/worker.yaml +++ b/charts/vela-core/templates/defwithtemplate/worker.yaml @@ -413,4 +413,5 @@ spec: definition: apiVersion: apps/v1 kind: Deployment + type: deployments.apps diff --git a/charts/vela-minimal/templates/defwithtemplate/task.yaml b/charts/vela-minimal/templates/defwithtemplate/task.yaml index 0bd455e0c..242cb68be 100644 --- a/charts/vela-minimal/templates/defwithtemplate/task.yaml +++ b/charts/vela-minimal/templates/defwithtemplate/task.yaml @@ -248,4 +248,5 @@ spec: definition: apiVersion: batch/v1 kind: Job + type: jobs.batch diff --git a/charts/vela-minimal/templates/defwithtemplate/webservice.yaml b/charts/vela-minimal/templates/defwithtemplate/webservice.yaml index fc0f40d7e..f8b5ada1e 100644 --- a/charts/vela-minimal/templates/defwithtemplate/webservice.yaml +++ b/charts/vela-minimal/templates/defwithtemplate/webservice.yaml @@ -509,4 +509,5 @@ spec: definition: apiVersion: apps/v1 kind: Deployment + type: deployments.apps diff --git a/charts/vela-minimal/templates/defwithtemplate/worker.yaml b/charts/vela-minimal/templates/defwithtemplate/worker.yaml index 435419cb1..b3daf6009 100644 --- a/charts/vela-minimal/templates/defwithtemplate/worker.yaml +++ b/charts/vela-minimal/templates/defwithtemplate/worker.yaml @@ -413,4 +413,5 @@ spec: definition: apiVersion: apps/v1 kind: Deployment + type: deployments.apps diff --git a/pkg/apiserver/rest/apis/v1/types.go b/pkg/apiserver/rest/apis/v1/types.go index 60980f16a..1be163260 100644 --- a/pkg/apiserver/rest/apis/v1/types.go +++ b/pkg/apiserver/rest/apis/v1/types.go @@ -484,9 +484,10 @@ type DetailDefinitionResponse struct { // DefinitionBase is the definition base model type DefinitionBase struct { - Name string `json:"name"` - Description string `json:"description"` - Icon string `json:"icon"` + Name string `json:"name"` + Description string `json:"description"` + WorkloadType string `json:"workloadType,omitempty"` + Icon string `json:"icon"` } // CreatePolicyRequest create app policy diff --git a/pkg/apiserver/rest/usecase/definition.go b/pkg/apiserver/rest/usecase/definition.go index 4afcb9be6..9ef2379d3 100644 --- a/pkg/apiserver/rest/usecase/definition.go +++ b/pkg/apiserver/rest/usecase/definition.go @@ -24,15 +24,18 @@ import ( "time" "github.com/getkin/kin-openapi/openapi3" + "github.com/pkg/errors" v1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" k8stypes "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/yaml" "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha2" + "github.com/oam-dev/kubevela/apis/core.oam.dev/v1beta1" "github.com/oam-dev/kubevela/apis/types" "github.com/oam-dev/kubevela/pkg/apiserver/clients" "github.com/oam-dev/kubevela/pkg/apiserver/log" @@ -44,7 +47,7 @@ import ( // DefinitionUsecase definition usecase, Implement the management of ComponentDefinition态TraitDefinition and WorkflowStepDefinition. type DefinitionUsecase interface { // ListDefinitions list definition base info - ListDefinitions(ctx context.Context, envName, defType string) ([]*apisv1.DefinitionBase, error) + ListDefinitions(ctx context.Context, envName, defType, appliedWorkloads string) ([]*apisv1.DefinitionBase, error) // DetailDefinition get definition detail DetailDefinition(ctx context.Context, name, defType string) (*apisv1.DetailDefinitionResponse, error) // AddDefinitionUISchema add or update custom definition ui schema @@ -74,46 +77,88 @@ func NewDefinitionUsecase() DefinitionUsecase { return &definitionUsecaseImpl{kubeClient: kubecli, caches: make(map[string]*utils.MemoryCache)} } -func (d *definitionUsecaseImpl) ListDefinitions(ctx context.Context, envName, defType string) ([]*apisv1.DefinitionBase, error) { +func (d *definitionUsecaseImpl) ListDefinitions(ctx context.Context, envName, defType, appliedWorkload string) ([]*apisv1.DefinitionBase, error) { defs := &unstructured.UnstructuredList{} switch defType { case "component": defs.SetAPIVersion(definitionAPIVersion) defs.SetKind(kindComponentDefinition) - return d.listDefinitions(ctx, defs, kindComponentDefinition) + return d.listDefinitions(ctx, defs, kindComponentDefinition, "") case "trait": defs.SetAPIVersion(definitionAPIVersion) defs.SetKind(kindTraitDefinition) - return d.listDefinitions(ctx, defs, kindTraitDefinition) + return d.listDefinitions(ctx, defs, kindTraitDefinition, appliedWorkload) case "workflowstep": defs.SetAPIVersion(definitionAPIVersion) defs.SetKind(kindWorkflowStepDefinition) - return d.listDefinitions(ctx, defs, kindWorkflowStepDefinition) + return d.listDefinitions(ctx, defs, kindWorkflowStepDefinition, "") default: return nil, bcode.ErrDefinitionTypeNotSupport } } -func (d *definitionUsecaseImpl) listDefinitions(ctx context.Context, list *unstructured.UnstructuredList, cache string) ([]*apisv1.DefinitionBase, error) { - if mc := d.caches[cache]; mc != nil && !mc.IsExpired() { +func (d *definitionUsecaseImpl) listDefinitions(ctx context.Context, list *unstructured.UnstructuredList, cache, appliedWorkload string) ([]*apisv1.DefinitionBase, error) { + if mc := d.caches[cache]; mc != nil && !mc.IsExpired() && appliedWorkload == "" { return mc.GetData().([]*apisv1.DefinitionBase), nil } + matchLabels := metav1.LabelSelector{ + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: types.LabelDefinitionDeprecated, + Operator: metav1.LabelSelectorOpDoesNotExist, + }, + { + Key: types.LabelDefinitionHidden, + Operator: metav1.LabelSelectorOpDoesNotExist, + }, + }, + } + selector, err := metav1.LabelSelectorAsSelector(&matchLabels) + if err != nil { + return nil, err + } if err := d.kubeClient.List(ctx, list, &client.ListOptions{ - Namespace: types.DefaultKubeVelaNS, + LabelSelector: selector, }); err != nil { return nil, err } var defs []*apisv1.DefinitionBase for _, def := range list.Items { - defs = append(defs, &apisv1.DefinitionBase{ + if appliedWorkload != "" { + traitDef := &v1beta1.TraitDefinition{} + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(def.Object, traitDef); err != nil { + return nil, errors.Wrap(err, "invalid trait definition") + } + filter := false + for _, workload := range traitDef.Spec.AppliesToWorkloads { + if workload == appliedWorkload || workload == "*" { + filter = true + break + } + } + if !filter { + continue + } + } + definition := &apisv1.DefinitionBase{ Name: def.GetName(), - Description: def.GetAnnotations()[types.AnnDescription], - }) + Description: def.GetAnnotations()[types.AnnoDefinitionDescription], + } + if cache == kindComponentDefinition { + compDef := &v1beta1.ComponentDefinition{} + if err := runtime.DefaultUnstructuredConverter.FromUnstructured(def.Object, compDef); err != nil { + return nil, errors.Wrap(err, "invalid component definition") + } + definition.WorkloadType = compDef.Spec.Workload.Type + } + defs = append(defs, definition) + } + if appliedWorkload == "" { + d.caches[cache] = utils.NewMemoryCache(defs, time.Minute*3) } - d.caches[cache] = utils.NewMemoryCache(defs, time.Minute*3) return defs, nil } diff --git a/pkg/apiserver/rest/usecase/definition_test.go b/pkg/apiserver/rest/usecase/definition_test.go index 673b118db..174b9858d 100644 --- a/pkg/apiserver/rest/usecase/definition_test.go +++ b/pkg/apiserver/rest/usecase/definition_test.go @@ -60,7 +60,7 @@ var _ = Describe("Test namespace usecase functions", func() { Expect(err).Should(Succeed()) err = k8sClient.Create(context.Background(), &cd) Expect(err).Should(Succeed()) - components, err := definitionUsecase.ListDefinitions(context.TODO(), "", "component") + components, err := definitionUsecase.ListDefinitions(context.TODO(), "", "component", "") Expect(err).Should(BeNil()) Expect(cmp.Diff(len(components), 1)).Should(BeEmpty()) Expect(cmp.Diff(components[0].Name, "webservice-test")).Should(BeEmpty()) @@ -74,7 +74,7 @@ var _ = Describe("Test namespace usecase functions", func() { Expect(err).Should(Succeed()) err = k8sClient.Create(context.Background(), &td) Expect(err).Should(Succeed()) - traits, err := definitionUsecase.ListDefinitions(context.TODO(), "", "trait") + traits, err := definitionUsecase.ListDefinitions(context.TODO(), "", "trait", "") Expect(err).Should(BeNil()) Expect(cmp.Diff(len(traits), 1)).Should(BeEmpty()) Expect(cmp.Diff(traits[0].Name, "myingress")).Should(BeEmpty()) @@ -88,7 +88,7 @@ var _ = Describe("Test namespace usecase functions", func() { Expect(err).Should(Succeed()) err = k8sClient.Create(context.Background(), &sd) Expect(err).Should(Succeed()) - wfstep, err := definitionUsecase.ListDefinitions(context.TODO(), "", "workflowstep") + wfstep, err := definitionUsecase.ListDefinitions(context.TODO(), "", "workflowstep", "") Expect(err).Should(BeNil()) Expect(cmp.Diff(len(wfstep), 1)).Should(BeEmpty()) Expect(cmp.Diff(wfstep[0].Name, "apply-application")).Should(BeEmpty()) diff --git a/pkg/apiserver/rest/webservice/definition.go b/pkg/apiserver/rest/webservice/definition.go index d5e508045..5251f7fa1 100644 --- a/pkg/apiserver/rest/webservice/definition.go +++ b/pkg/apiserver/rest/webservice/definition.go @@ -43,6 +43,7 @@ func (d *definitionWebservice) GetWebService() *restful.WebService { Metadata(restfulspec.KeyOpenAPITags, tags). Param(ws.QueryParameter("type", "query the definition type").DataType("string").Required(true).AllowableValues(map[string]string{"component": "", "trait": "", "workflowstep": ""})). Param(ws.QueryParameter("envName", "if specified, query the definition supported by the env.").DataType("string")). + Param(ws.QueryParameter("appliedWorkload", "if specified, query the trait definition applied to the workload.").DataType("string")). Returns(200, "", apis.ListDefinitionResponse{}). Writes(apis.ListDefinitionResponse{}).Do(returns200, returns500)) @@ -64,7 +65,7 @@ func NewDefinitionWebservice(du usecase.DefinitionUsecase) WebService { } func (d *definitionWebservice) listDefinitions(req *restful.Request, res *restful.Response) { - definitions, err := d.definitionUsecase.ListDefinitions(req.Request.Context(), req.QueryParameter("envName"), req.QueryParameter("type")) + definitions, err := d.definitionUsecase.ListDefinitions(req.Request.Context(), req.QueryParameter("envName"), req.QueryParameter("type"), req.QueryParameter("appliedWorkload")) if err != nil { bcode.ReturnError(req, res, err) return diff --git a/pkg/controller/utils/capability.go b/pkg/controller/utils/capability.go index cf405d2e0..637c0749f 100644 --- a/pkg/controller/utils/capability.go +++ b/pkg/controller/utils/capability.go @@ -249,7 +249,7 @@ func (def *CapabilityComponentDefinition) StoreOpenAPISchema(ctx context.Context Controller: pointer.BoolPtr(true), BlockOwnerDeletion: pointer.BoolPtr(true), }} - cmName, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, componentDefinition.Name, typeComponentDefinition, jsonSchema, ownerReference) + cmName, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, componentDefinition.Name, typeComponentDefinition, componentDefinition.Labels, nil, jsonSchema, ownerReference) if err != nil { return cmName, err } @@ -267,7 +267,7 @@ func (def *CapabilityComponentDefinition) StoreOpenAPISchema(ctx context.Context Controller: pointer.BoolPtr(true), BlockOwnerDeletion: pointer.BoolPtr(true), }} - _, err = def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, revName, typeComponentDefinition, jsonSchema, ownerReference) + _, err = def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, revName, typeComponentDefinition, defRev.Spec.ComponentDefinition.Labels, nil, jsonSchema, ownerReference) if err != nil { return cmName, err } @@ -330,7 +330,7 @@ func (def *CapabilityTraitDefinition) StoreOpenAPISchema(ctx context.Context, k8 Controller: pointer.BoolPtr(true), BlockOwnerDeletion: pointer.BoolPtr(true), }} - cmName, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, traitDefinition.Name, typeTraitDefinition, jsonSchema, ownerReference) + cmName, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, traitDefinition.Name, typeTraitDefinition, traitDefinition.Labels, traitDefinition.Spec.AppliesToWorkloads, jsonSchema, ownerReference) if err != nil { return cmName, err } @@ -348,7 +348,7 @@ func (def *CapabilityTraitDefinition) StoreOpenAPISchema(ctx context.Context, k8 Controller: pointer.BoolPtr(true), BlockOwnerDeletion: pointer.BoolPtr(true), }} - _, err = def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, revName, typeTraitDefinition, jsonSchema, ownerReference) + _, err = def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, revName, typeTraitDefinition, defRev.Spec.TraitDefinition.Labels, defRev.Spec.TraitDefinition.Spec.AppliesToWorkloads, jsonSchema, ownerReference) if err != nil { return cmName, err } @@ -399,7 +399,7 @@ func (def *CapabilityStepDefinition) StoreOpenAPISchema(ctx context.Context, k8s Controller: pointer.BoolPtr(true), BlockOwnerDeletion: pointer.BoolPtr(true), }} - cmName, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, stepDefinition.Name, typeWorkflowStepDefinition, jsonSchema, ownerReference) + cmName, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, stepDefinition.Name, typeWorkflowStepDefinition, stepDefinition.Labels, nil, jsonSchema, ownerReference) if err != nil { return cmName, err } @@ -417,7 +417,7 @@ func (def *CapabilityStepDefinition) StoreOpenAPISchema(ctx context.Context, k8s Controller: pointer.BoolPtr(true), BlockOwnerDeletion: pointer.BoolPtr(true), }} - _, err = def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, revName, typeWorkflowStepDefinition, jsonSchema, ownerReference) + _, err = def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, revName, typeWorkflowStepDefinition, defRev.Spec.WorkflowStepDefinition.Labels, nil, jsonSchema, ownerReference) if err != nil { return cmName, err } @@ -430,12 +430,22 @@ type CapabilityBaseDefinition struct { // CreateOrUpdateConfigMap creates ConfigMap to store OpenAPI v3 schema or or updates data in ConfigMap func (def *CapabilityBaseDefinition) CreateOrUpdateConfigMap(ctx context.Context, k8sClient client.Client, namespace, - definitionName, definitionType string, jsonSchema []byte, ownerReferences []metav1.OwnerReference) (string, error) { + definitionName, definitionType string, labels map[string]string, appliedWorkloads []string, jsonSchema []byte, ownerReferences []metav1.OwnerReference) (string, error) { cmName := fmt.Sprintf("%s-%s%s", definitionType, types.CapabilityConfigMapNamePrefix, definitionName) var cm v1.ConfigMap var data = map[string]string{ types.OpenapiV3JSONSchema: string(jsonSchema), } + if labels == nil { + labels = make(map[string]string) + } + labels[types.LabelDefinition] = "schema" + labels[types.LabelDefinitionName] = definitionName + annotations := make(map[string]string) + if appliedWorkloads != nil { + annotations[types.AnnoDefinitionAppliedWorkloads] = strings.Join(appliedWorkloads, ",") + } + // No need to check the existence of namespace, if it doesn't exist, API server will return the error message // before it's to be reconciled by ComponentDefinition/TraitDefinition controller. err := k8sClient.Get(ctx, client.ObjectKey{Namespace: namespace, Name: cmName}, &cm) @@ -449,10 +459,8 @@ func (def *CapabilityBaseDefinition) CreateOrUpdateConfigMap(ctx context.Context Name: cmName, Namespace: namespace, OwnerReferences: ownerReferences, - Labels: map[string]string{ - "definition.oam.dev": "schema", - "definition.oam.dev/name": definitionName, - }, + Labels: labels, + Annotations: annotations, }, Data: data, } @@ -465,6 +473,8 @@ func (def *CapabilityBaseDefinition) CreateOrUpdateConfigMap(ctx context.Context } cm.Data = data + cm.Labels = labels + cm.Annotations = annotations if err = k8sClient.Update(ctx, &cm); err != nil { return cmName, fmt.Errorf(util.ErrUpdateCapabilityInConfigMap, definitionName, err) } diff --git a/pkg/controller/utils/capability_integrate_test.go b/pkg/controller/utils/capability_integrate_test.go index 890480f11..deb4196db 100644 --- a/pkg/controller/utils/capability_integrate_test.go +++ b/pkg/controller/utils/capability_integrate_test.go @@ -181,7 +181,7 @@ spec: Controller: pointer.BoolPtr(true), BlockOwnerDeletion: pointer.BoolPtr(true), }} - _, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, definitionName, typeTraitDefinition, []byte(""), ownerReference) + _, err := def.CreateOrUpdateConfigMap(ctx, k8sClient, namespace, definitionName, typeTraitDefinition, nil, nil, []byte(""), ownerReference) Expect(err).Should(BeNil()) }) }) diff --git a/references/plugins/cluster.go b/references/plugins/cluster.go index 9bed4c478..535762b41 100644 --- a/references/plugins/cluster.go +++ b/references/plugins/cluster.go @@ -229,7 +229,7 @@ func GetDescription(annotation map[string]string) string { if annotation == nil { return DescriptionUndefined } - desc, ok := annotation[types.AnnDescription] + desc, ok := annotation[types.AnnoDefinitionDescription] if !ok { return DescriptionUndefined } diff --git a/vela-templates/addons/auto-gen/fluxcd.yaml b/vela-templates/addons/auto-gen/fluxcd.yaml index bf3636d75..73acbe3d9 100644 --- a/vela-templates/addons/auto-gen/fluxcd.yaml +++ b/vela-templates/addons/auto-gen/fluxcd.yaml @@ -5763,8 +5763,6 @@ spec: annotations: definition.oam.dev/description: helm release is a group of K8s resources from either git repository or helm repo - labels: - custom.definition.oam.dev/ui-hidden: "true" name: helm namespace: vela-system spec: @@ -5843,8 +5841,6 @@ spec: metadata: annotations: definition.oam.dev/description: A list of JSON6902 patch to selected target - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize-json-patch spec: schematic: @@ -5870,8 +5866,6 @@ spec: annotations: definition.oam.dev/description: A list of StrategicMerge or JSON6902 patch to selected target - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize-patch spec: schematic: @@ -5895,8 +5889,6 @@ spec: annotations: definition.oam.dev/description: kustomize can fetching, building, updating and applying Kustomize manifests from git repo. - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize namespace: vela-system spec: @@ -6008,8 +6000,6 @@ spec: metadata: annotations: definition.oam.dev/description: A list of strategic merge to kustomize config - labels: - custom.definition.oam.dev/ui-hidden: "true" name: kustomize-strategy-merge spec: schematic: diff --git a/vela-templates/addons/auto-gen/istio.yaml b/vela-templates/addons/auto-gen/istio.yaml index 5142e6934..7587effb1 100644 --- a/vela-templates/addons/auto-gen/istio.yaml +++ b/vela-templates/addons/auto-gen/istio.yaml @@ -27,8 +27,6 @@ spec: apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: canary-rollout namespace: vela-system spec: @@ -98,8 +96,6 @@ spec: metadata: annotations: definition.oam.dev/description: use istio to manage in-cluster traffic - labels: - custom.definition.oam.dev/ui-hidden: "true" name: istio-gateway namespace: vela-system spec: @@ -129,8 +125,6 @@ spec: apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: canary-rollback namespace: vela-system spec: @@ -209,8 +203,6 @@ spec: metadata: annotations: definition.oam.dev/description: use istio to manage traffic - labels: - custom.definition.oam.dev/ui-hidden: "true" name: canary-traffic namespace: vela-system spec: diff --git a/vela-templates/addons/auto-gen/kruise.yaml b/vela-templates/addons/auto-gen/kruise.yaml index 8bd5b2ddf..7d9c754be 100644 --- a/vela-templates/addons/auto-gen/kruise.yaml +++ b/vela-templates/addons/auto-gen/kruise.yaml @@ -28,8 +28,6 @@ spec: services that have a stable network endpoint to receive external network traffic from customers. If workload type is skipped for any service defined in Appfile, it will be defaulted to `webservice` type. - labels: - custom.definition.oam.dev/ui-hidden: "true" name: cloneset namespace: vela-system spec: @@ -139,8 +137,6 @@ spec: apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: predownloadimage spec: schematic: diff --git a/vela-templates/addons/auto-gen/terraform.yaml b/vela-templates/addons/auto-gen/terraform.yaml index 7c2348af7..53e5b92db 100644 --- a/vela-templates/addons/auto-gen/terraform.yaml +++ b/vela-templates/addons/auto-gen/terraform.yaml @@ -24,7 +24,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud ACK cluster labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-ack namespace: vela-system @@ -48,7 +47,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Serverless Kubernetes (ASK) labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-ask namespace: vela-system @@ -72,7 +70,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Elastic IP labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-eip namespace: vela-system @@ -97,7 +94,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud OSS object labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-oss namespace: vela-system @@ -128,7 +124,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud RDS object labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-rds namespace: vela-system @@ -209,7 +204,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Redis labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-redis namespace: vela-system @@ -232,7 +226,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud SLS Project labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-sls-project namespace: vela-system @@ -256,7 +249,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud SLS Store labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-sls-store namespace: vela-system @@ -280,7 +272,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud VPC labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-vpc namespace: vela-system @@ -304,7 +295,6 @@ spec: definition.oam.dev/description: Terraform configuration for Alibaba Cloud VSwitch labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: alibaba-vswitch namespace: vela-system @@ -327,7 +317,6 @@ spec: annotations: definition.oam.dev/description: Terraform configuration for AWS S3 labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: aws-s3 namespace: vela-system @@ -370,7 +359,6 @@ spec: Mariadb provider: azure labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: azure-database-mariadb namespace: vela-system @@ -487,7 +475,6 @@ spec: Account provider: azure labels: - custom.definition.oam.dev/ui-hidden: "true" type: terraform name: azure-storage-account namespace: vela-system diff --git a/vela-templates/addons/fluxcd/definitions/helm-release.yaml b/vela-templates/addons/fluxcd/definitions/helm-release.yaml index ad00b2e00..9f0a4e2ef 100644 --- a/vela-templates/addons/fluxcd/definitions/helm-release.yaml +++ b/vela-templates/addons/fluxcd/definitions/helm-release.yaml @@ -3,8 +3,6 @@ kind: ComponentDefinition metadata: name: helm namespace: vela-system - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: "helm release is a group of K8s resources from either git repository or helm repo" spec: diff --git a/vela-templates/addons/fluxcd/definitions/json-patch.yaml b/vela-templates/addons/fluxcd/definitions/json-patch.yaml index f44de94e5..f7ccd53bf 100644 --- a/vela-templates/addons/fluxcd/definitions/json-patch.yaml +++ b/vela-templates/addons/fluxcd/definitions/json-patch.yaml @@ -1,8 +1,6 @@ apiVersion: core.oam.dev/v1beta1 kind: TraitDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: "A list of JSON6902 patch to selected target" name: kustomize-json-patch diff --git a/vela-templates/addons/fluxcd/definitions/kustomize-patch.yaml b/vela-templates/addons/fluxcd/definitions/kustomize-patch.yaml index cf3aac7a3..0aff7ba8d 100644 --- a/vela-templates/addons/fluxcd/definitions/kustomize-patch.yaml +++ b/vela-templates/addons/fluxcd/definitions/kustomize-patch.yaml @@ -1,8 +1,6 @@ apiVersion: core.oam.dev/v1beta1 kind: TraitDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: "A list of StrategicMerge or JSON6902 patch to selected target" name: kustomize-patch diff --git a/vela-templates/addons/fluxcd/definitions/kustomize.yaml b/vela-templates/addons/fluxcd/definitions/kustomize.yaml index 7abde1df6..c934f1e78 100644 --- a/vela-templates/addons/fluxcd/definitions/kustomize.yaml +++ b/vela-templates/addons/fluxcd/definitions/kustomize.yaml @@ -3,8 +3,6 @@ kind: ComponentDefinition metadata: name: kustomize namespace: vela-system - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: "kustomize can fetching, building, updating and applying Kustomize manifests from git repo." spec: diff --git a/vela-templates/addons/fluxcd/definitions/strategy-merge.yaml b/vela-templates/addons/fluxcd/definitions/strategy-merge.yaml index 9853cb168..8e093cedb 100644 --- a/vela-templates/addons/fluxcd/definitions/strategy-merge.yaml +++ b/vela-templates/addons/fluxcd/definitions/strategy-merge.yaml @@ -1,8 +1,6 @@ apiVersion: core.oam.dev/v1beta1 kind: TraitDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: "A list of strategic merge to kustomize config" name: kustomize-strategy-merge diff --git a/vela-templates/addons/istio/definitions/canary-rollout-wf-def.yaml b/vela-templates/addons/istio/definitions/canary-rollout-wf-def.yaml index ba395af9f..c6c1d17a9 100644 --- a/vela-templates/addons/istio/definitions/canary-rollout-wf-def.yaml +++ b/vela-templates/addons/istio/definitions/canary-rollout-wf-def.yaml @@ -3,8 +3,6 @@ kind: WorkflowStepDefinition metadata: name: canary-rollout namespace: vela-system - labels: - custom.definition.oam.dev/ui-hidden: "true" spec: schematic: cue: diff --git a/vela-templates/addons/istio/definitions/gateway-trait-def.yaml b/vela-templates/addons/istio/definitions/gateway-trait-def.yaml index 60984ea37..1cd126e75 100644 --- a/vela-templates/addons/istio/definitions/gateway-trait-def.yaml +++ b/vela-templates/addons/istio/definitions/gateway-trait-def.yaml @@ -3,8 +3,6 @@ apiVersion: core.oam.dev/v1beta1 kind: TraitDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: use istio to manage in-cluster traffic name: istio-gateway diff --git a/vela-templates/addons/istio/definitions/rollback-wf-def.yaml b/vela-templates/addons/istio/definitions/rollback-wf-def.yaml index 7a4deaec2..31a8066ee 100644 --- a/vela-templates/addons/istio/definitions/rollback-wf-def.yaml +++ b/vela-templates/addons/istio/definitions/rollback-wf-def.yaml @@ -1,8 +1,6 @@ apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: canary-rollback namespace: vela-system spec: diff --git a/vela-templates/addons/istio/definitions/traffic-trait-def.yaml b/vela-templates/addons/istio/definitions/traffic-trait-def.yaml index a5e284bde..00e43eb09 100644 --- a/vela-templates/addons/istio/definitions/traffic-trait-def.yaml +++ b/vela-templates/addons/istio/definitions/traffic-trait-def.yaml @@ -3,8 +3,6 @@ apiVersion: core.oam.dev/v1beta1 kind: TraitDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: use istio to manage traffic name: canary-traffic diff --git a/vela-templates/addons/kruise/definitions/cloneset.yaml b/vela-templates/addons/kruise/definitions/cloneset.yaml index e3ebcdb1e..92b53a803 100644 --- a/vela-templates/addons/kruise/definitions/cloneset.yaml +++ b/vela-templates/addons/kruise/definitions/cloneset.yaml @@ -3,8 +3,6 @@ kind: ComponentDefinition metadata: name: cloneset namespace: vela-system - labels: - custom.definition.oam.dev/ui-hidden: "true" annotations: definition.oam.dev/description: "Describes long-running, scalable, containerized services that have a stable network endpoint to receive external network traffic from customers. If workload type is skipped for any service defined in Appfile, it will be defaulted to `webservice` type." diff --git a/vela-templates/addons/kruise/definitions/imagepulljob-step.yaml b/vela-templates/addons/kruise/definitions/imagepulljob-step.yaml index a5ca7cf3e..abd409eae 100644 --- a/vela-templates/addons/kruise/definitions/imagepulljob-step.yaml +++ b/vela-templates/addons/kruise/definitions/imagepulljob-step.yaml @@ -1,8 +1,6 @@ apiVersion: core.oam.dev/v1beta1 kind: WorkflowStepDefinition metadata: - labels: - custom.definition.oam.dev/ui-hidden: "true" name: predownloadimage spec: schematic: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-ack.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-ack.yaml index 4a1600673..7458a93ca 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-ack.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-ack.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud ACK cluster labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-ask.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-ask.yaml index 93fded20a..d3f871be6 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-ask.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-ask.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Serverless Kubernetes (ASK) labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-eip.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-eip.yaml index b1960c7ec..36a720492 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-eip.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-eip.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Elastic IP labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-oss.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-oss.yaml index 65579d9ff..8ad5a92ef 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-oss.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-oss.yaml @@ -12,7 +12,6 @@ metadata: # the outputs which are sensitive. Separate them by a comma if there are more than one labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-rds.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-rds.yaml index 0ec4e0654..20551f964 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-rds.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-rds.yaml @@ -13,7 +13,6 @@ metadata: cloud-resource/sensitive-outputs: "DB_PASSWORD" labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-redis.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-redis.yaml index 2203b3a4c..245c77219 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-redis.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-redis.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud Redis labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-project.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-project.yaml index 6b9a80e4e..3e3e0c269 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-project.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-project.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud SLS Project labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-store.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-store.yaml index 6df32da0c..7ac89649c 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-store.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-sls-store.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud SLS Store labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-vpc.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-vpc.yaml index da629f948..1eddf4670 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-vpc.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-vpc.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud VPC labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-alibaba-vswitch.yaml b/vela-templates/addons/terraform/definitions/terraform-alibaba-vswitch.yaml index 84fe33d50..6ca0a7d32 100644 --- a/vela-templates/addons/terraform/definitions/terraform-alibaba-vswitch.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-alibaba-vswitch.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Alibaba Cloud VSwitch labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-aws-s3.yaml b/vela-templates/addons/terraform/definitions/terraform-aws-s3.yaml index 50d37476a..7e63c6548 100644 --- a/vela-templates/addons/terraform/definitions/terraform-aws-s3.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-aws-s3.yaml @@ -7,7 +7,6 @@ metadata: definition.oam.dev/description: Terraform configuration for AWS S3 labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-azure-database-mariadb.yaml b/vela-templates/addons/terraform/definitions/terraform-azure-database-mariadb.yaml index 975b6e88d..3cb0b942a 100644 --- a/vela-templates/addons/terraform/definitions/terraform-azure-database-mariadb.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-azure-database-mariadb.yaml @@ -8,7 +8,6 @@ metadata: definition.oam.dev/description: Terraform configuration for Azure Database Mariadb labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/addons/terraform/definitions/terraform-azure-storage-account.yaml b/vela-templates/addons/terraform/definitions/terraform-azure-storage-account.yaml index df2619afd..cca7beded 100644 --- a/vela-templates/addons/terraform/definitions/terraform-azure-storage-account.yaml +++ b/vela-templates/addons/terraform/definitions/terraform-azure-storage-account.yaml @@ -8,7 +8,6 @@ metadata: provider: azure labels: type: terraform - custom.definition.oam.dev/ui-hidden: "true" spec: workload: definition: diff --git a/vela-templates/definitions/internal/component/task.cue b/vela-templates/definitions/internal/component/task.cue index b638cb7a2..47cb51029 100644 --- a/vela-templates/definitions/internal/component/task.cue +++ b/vela-templates/definitions/internal/component/task.cue @@ -3,9 +3,12 @@ task: { annotations: {} labels: {} description: "Describes jobs that run code or a script to completion." - attributes: workload: definition: { - apiVersion: "batch/v1" - kind: "Job" + attributes: workload: { + definition: { + apiVersion: "batch/v1" + kind: "Job" + } + type: "jobs.batch" } } template: { diff --git a/vela-templates/definitions/internal/component/webservice.cue b/vela-templates/definitions/internal/component/webservice.cue index f8da40c3a..8f7897785 100644 --- a/vela-templates/definitions/internal/component/webservice.cue +++ b/vela-templates/definitions/internal/component/webservice.cue @@ -4,9 +4,12 @@ webservice: { labels: {} description: "Describes long-running, scalable, containerized services that have a stable network endpoint to receive external network traffic from customers." attributes: { - workload: definition: { - apiVersion: "apps/v1" - kind: "Deployment" + workload: { + definition: { + apiVersion: "apps/v1" + kind: "Deployment" + } + type: "deployments.apps" } status: { customStatus: #""" diff --git a/vela-templates/definitions/internal/component/worker.cue b/vela-templates/definitions/internal/component/worker.cue index cfe4d0574..415292c82 100644 --- a/vela-templates/definitions/internal/component/worker.cue +++ b/vela-templates/definitions/internal/component/worker.cue @@ -6,9 +6,12 @@ worker: { } description: "Describes long-running, scalable, containerized services that running at backend. They do NOT have network endpoint to receive external network traffic." attributes: { - workload: definition: { - apiVersion: "apps/v1" - kind: "Deployment" + workload: { + definition: { + apiVersion: "apps/v1" + kind: "Deployment" + } + type: "deployments.apps" } status: { customStatus: #"""