From 67463d13fefe134705f8c852f309c97c62a7d12a Mon Sep 17 00:00:00 2001 From: Somefive Date: Fri, 27 May 2022 18:30:07 +0800 Subject: [PATCH] Fix: use user info in ref-object select Signed-off-by: Somefive --- makefiles/e2e.mk | 2 +- pkg/appfile/appfile.go | 2 ++ pkg/appfile/parser.go | 2 ++ pkg/controller/core.oam.dev/v1alpha2/application/generator.go | 4 ++-- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/makefiles/e2e.mk b/makefiles/e2e.mk index 68b0d9afa..ac8b70a51 100644 --- a/makefiles/e2e.mk +++ b/makefiles/e2e.mk @@ -16,7 +16,7 @@ e2e-setup-core-wo-auth: .PHONY: e2e-setup-core-w-auth e2e-setup-core-w-auth: - helm upgrade --install --create-namespace --namespace vela-system --set image.pullPolicy=IfNotPresent --set image.repository=vela-core-test --set applicationRevisionLimit=5 --set dependCheckWait=10s --set image.tag=$(GIT_COMMIT) --wait kubevela ./charts/vela-core --set authentication.enabled=true --set authentication.withUser=true + helm upgrade --install --create-namespace --namespace vela-system --set image.pullPolicy=IfNotPresent --set image.repository=vela-core-test --set applicationRevisionLimit=5 --set dependCheckWait=10s --set image.tag=$(GIT_COMMIT) --wait kubevela ./charts/vela-core --set authentication.enabled=true --set authentication.withUser=true --set authentication.groupPattern=* .PHONY: e2e-setup-core e2e-setup-core: e2e-setup-core-pre-hook e2e-setup-core-wo-auth e2e-setup-core-post-hook diff --git a/pkg/appfile/appfile.go b/pkg/appfile/appfile.go index 5f4fef6ee..13637fbab 100644 --- a/pkg/appfile/appfile.go +++ b/pkg/appfile/appfile.go @@ -42,6 +42,7 @@ import ( "github.com/oam-dev/kubevela/apis/core.oam.dev/v1beta1" "github.com/oam-dev/kubevela/apis/types" "github.com/oam-dev/kubevela/pkg/appfile/helm" + "github.com/oam-dev/kubevela/pkg/auth" velaclient "github.com/oam-dev/kubevela/pkg/client" "github.com/oam-dev/kubevela/pkg/component" "github.com/oam-dev/kubevela/pkg/cue/definition" @@ -922,6 +923,7 @@ func (af *Appfile) LoadDynamicComponent(ctx context.Context, cli client.Client, return nil, errors.Wrapf(err, "invalid ref-objects component properties") } var uns []*unstructured.Unstructured + ctx = auth.ContextWithUserInfo(ctx, af.app) for _, selector := range spec.Objects { objs, err := component.SelectRefObjectsForDispatch(ctx, component.ReferredObjectsDelegatingClient(cli, af.ReferredObjects), af.Namespace, comp.Name, selector) if err != nil { diff --git a/pkg/appfile/parser.go b/pkg/appfile/parser.go index c51f46ca2..1f13ff58a 100644 --- a/pkg/appfile/parser.go +++ b/pkg/appfile/parser.go @@ -34,6 +34,7 @@ import ( "github.com/oam-dev/kubevela/apis/core.oam.dev/v1alpha1" "github.com/oam-dev/kubevela/apis/core.oam.dev/v1beta1" "github.com/oam-dev/kubevela/apis/types" + "github.com/oam-dev/kubevela/pkg/auth" "github.com/oam-dev/kubevela/pkg/component" "github.com/oam-dev/kubevela/pkg/cue/definition" "github.com/oam-dev/kubevela/pkg/cue/packages" @@ -332,6 +333,7 @@ func (p *Parser) parseReferredObjectsFromRevision(af *Appfile) error { } func (p *Parser) parseReferredObjects(ctx context.Context, af *Appfile) error { + ctx = auth.ContextWithUserInfo(ctx, af.app) for _, comp := range af.Components { if comp.Type != v1alpha1.RefObjectsComponentType { continue diff --git a/pkg/controller/core.oam.dev/v1alpha2/application/generator.go b/pkg/controller/core.oam.dev/v1alpha2/application/generator.go index 847be7a51..53d23ad42 100644 --- a/pkg/controller/core.oam.dev/v1alpha2/application/generator.go +++ b/pkg/controller/core.oam.dev/v1alpha2/application/generator.go @@ -237,7 +237,7 @@ func (h *AppHandler) checkComponentHealth(appParser *appfile.Parser, appRev *v1b return false, err } - _, isHealth, err := h.collectHealthStatus(ctx, wl, appRev, overrideNamespace) + _, isHealth, err := h.collectHealthStatus(auth.ContextWithUserInfo(ctx, h.app), wl, appRev, overrideNamespace) return isHealth, err } } @@ -288,7 +288,7 @@ func (h *AppHandler) applyComponentFunc(appParser *appfile.Parser, appRev *v1bet if DisableResourceApplyDoubleCheck { return readyWorkload, readyTraits, true, nil } - workload, traits, err := getComponentResources(ctx, manifest, wl.SkipApplyWorkload, h.r.Client) + workload, traits, err := getComponentResources(auth.ContextWithUserInfo(ctx, h.app), manifest, wl.SkipApplyWorkload, h.r.Client) return workload, traits, true, err } }