App Installer: Revert #109267 and skip ShortURL integration tests (#109591)

* Revert "App Installer: Merge builder and installer admission (#109267)"

This reverts commit c662b880fd.

* ShortURL: Skip integration tests temporarily
This commit is contained in:
Matheus Macabu
2025-08-13 11:27:37 +00:00
committed by GitHub
parent 2887099c74
commit 94f7602786
3 changed files with 23 additions and 29 deletions
@@ -11,7 +11,6 @@ import (
"github.com/grafana/grafana/pkg/storage/legacysql/dualwrite"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apiserver/pkg/admission"
"k8s.io/apiserver/pkg/authorization/authorizer"
"k8s.io/apiserver/pkg/registry/generic"
genericapiserver "k8s.io/apiserver/pkg/server"
@@ -59,31 +58,27 @@ func AddToScheme(
return additionalGroupVersions, nil
}
// RegisterAdmission combines the existing admission control from builders.
func RegisterAdmission(
existingAdmission admission.Interface,
// RegisterAdmissionPlugins registers admission plugins for app installers
func RegisterAdmissionPlugins(
ctx context.Context,
appInstallers []appsdkapiserver.AppInstaller,
) (admission.Interface, error) {
controllers := []admission.Interface{}
options *grafanaapiserveroptions.Options,
) error {
logger := logging.FromContext(ctx)
for _, installer := range appInstallers {
factory := installer.AdmissionPlugin()
if factory == nil {
continue
plugin := installer.AdmissionPlugin()
if plugin != nil {
md := installer.ManifestData()
if md == nil {
return fmt.Errorf("manifest is not initialized for installer for GroupVersions %v", installer.GroupVersions())
}
pluginName := md.AppName + " admission"
options.RecommendedOptions.Admission.Plugins.Register(pluginName, plugin)
logger.Info("Registered admission plugin", "app", md.AppName)
}
admissionInterface, err := factory(nil)
if err != nil {
return nil, fmt.Errorf("failed to create admission plugin: %w", err)
}
controllers = append(controllers, admissionInterface)
}
if existingAdmission != nil {
controllers = append(controllers, existingAdmission)
}
return admission.NewChainHandler(controllers...), nil
return nil
}
type AuthorizerRegistrar interface {
+5 -8
View File
@@ -291,6 +291,11 @@ func (s *service) start(ctx context.Context) error {
o := grafanaapiserveroptions.NewOptions(s.codecs.LegacyCodec(groupVersions...))
// Register admission plugins from app installers after options are created
if err := appinstaller.RegisterAdmissionPlugins(ctx, s.appInstallers, o); err != nil {
return err
}
// Register authorizers from app installers
appinstaller.RegisterAuthorizers(ctx, s.appInstallers, s.authorizer)
@@ -362,14 +367,6 @@ func (s *service) start(ctx context.Context) error {
return err
}
serverConfig.AdmissionControl, err = appinstaller.RegisterAdmission(
serverConfig.AdmissionControl,
s.appInstallers,
)
if err != nil {
return err
}
notFoundHandler := notfoundhandler.New(s.codecs, genericapifilters.NoMuxAndDiscoveryIncompleteKey)
if err := appinstaller.RegisterPostStartHooks(s.appInstallers, serverConfig); err != nil {
+2
View File
@@ -36,6 +36,8 @@ var gvr = schema.GroupVersionResource{
var RESOURCEGROUP = gvr.GroupResource().String()
func TestIntegrationShortURL(t *testing.T) {
t.Skip("Skipping due to issue with https://github.com/grafana/grafana/pull/109267")
if testing.Short() {
t.Skip("skipping integration test")
}