Plugins: Add support for ResourceConversion (#91977)

This commit is contained in:
Todd Treece
2024-08-15 16:02:21 -04:00
committed by GitHub
parent 28f2a4078d
commit e60b0aef83
40 changed files with 156 additions and 110 deletions

View File

@ -218,7 +218,7 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest,
}
// ConvertObject implements plugins.Client.
func (s *Service) ConvertObject(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
func (s *Service) ConvertObjects(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
if req == nil {
return nil, errNilRequest
}
@ -228,7 +228,7 @@ func (s *Service) ConvertObject(ctx context.Context, req *backend.ConversionRequ
return nil, plugins.ErrPluginNotRegistered
}
return plugin.ConvertObject(ctx, req)
return plugin.ConvertObjects(ctx, req)
}
// MutateAdmission implements plugins.Client.

View File

@ -29,7 +29,7 @@ type TestClient struct {
RunStreamFunc func(ctx context.Context, req *backend.RunStreamRequest, sender *backend.StreamSender) error
ValidateAdmissionFunc backend.ValidateAdmissionFunc
MutateAdmissionFunc backend.MutateAdmissionFunc
ConvertObjectFunc backend.ConvertObjectFunc
ConvertObjectsFunc backend.ConvertObjectsFunc
}
func (c *TestClient) QueryData(ctx context.Context, req *backend.QueryDataRequest) (*backend.QueryDataResponse, error) {
@ -101,9 +101,9 @@ func (c *TestClient) MutateAdmission(ctx context.Context, req *backend.Admission
return nil, nil
}
func (c *TestClient) ConvertObject(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
if c.ConvertObjectFunc != nil {
return c.ConvertObjectFunc(ctx, req)
func (c *TestClient) ConvertObjects(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
if c.ConvertObjectsFunc != nil {
return c.ConvertObjectsFunc(ctx, req)
}
return nil, nil
}
@ -119,7 +119,7 @@ type MiddlewareScenarioContext struct {
InstanceSettingsCallChain []string
ValidateAdmissionCallChain []string
MutateAdmissionCallChain []string
ConvertObjectCallChain []string
ConvertObjectsCallChain []string
}
func (ctx *MiddlewareScenarioContext) NewMiddleware(name string) plugins.ClientMiddleware {
@ -173,10 +173,10 @@ func (m *TestMiddleware) MutateAdmission(ctx context.Context, req *backend.Admis
return res, err
}
func (m *TestMiddleware) ConvertObject(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
m.sCtx.ConvertObjectCallChain = append(m.sCtx.ConvertObjectCallChain, fmt.Sprintf("before %s", m.Name))
res, err := m.next.ConvertObject(ctx, req)
m.sCtx.ConvertObjectCallChain = append(m.sCtx.ConvertObjectCallChain, fmt.Sprintf("after %s", m.Name))
func (m *TestMiddleware) ConvertObjects(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
m.sCtx.ConvertObjectsCallChain = append(m.sCtx.ConvertObjectsCallChain, fmt.Sprintf("before %s", m.Name))
res, err := m.next.ConvertObjects(ctx, req)
m.sCtx.ConvertObjectsCallChain = append(m.sCtx.ConvertObjectsCallChain, fmt.Sprintf("after %s", m.Name))
return res, err
}

View File

@ -156,7 +156,7 @@ func (d *Decorator) MutateAdmission(ctx context.Context, req *backend.AdmissionR
return client.MutateAdmission(ctx, req)
}
func (d *Decorator) ConvertObject(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
func (d *Decorator) ConvertObjects(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
if req == nil {
return nil, errNilRequest
}
@ -166,7 +166,7 @@ func (d *Decorator) ConvertObject(ctx context.Context, req *backend.ConversionRe
ctx = backend.WithUser(ctx, req.PluginContext.User)
client := clientFromMiddlewares(d.middlewares, d.client)
return client.ConvertObject(ctx, req)
return client.ConvertObjects(ctx, req)
}
func clientFromMiddlewares(middlewares []plugins.ClientMiddleware, finalClient plugins.Client) plugins.Client {

View File

@ -239,9 +239,9 @@ func (m *TestMiddleware) MutateAdmission(ctx context.Context, req *backend.Admis
return res, err
}
func (m *TestMiddleware) ConvertObject(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
func (m *TestMiddleware) ConvertObjects(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
m.sCtx.ConvertObjectCallChain = append(m.sCtx.ConvertObjectCallChain, fmt.Sprintf("before %s", m.Name))
res, err := m.next.ConvertObject(ctx, req)
res, err := m.next.ConvertObjects(ctx, req)
m.sCtx.ConvertObjectCallChain = append(m.sCtx.ConvertObjectCallChain, fmt.Sprintf("after %s", m.Name))
return res, err
}

View File

@ -72,7 +72,7 @@ type FakePluginClient struct {
backend.CallResourceHandlerFunc
backend.MutateAdmissionFunc
backend.ValidateAdmissionFunc
backend.ConvertObjectFunc
backend.ConvertObjectsFunc
mutex sync.RWMutex
backendplugin.Plugin
@ -185,9 +185,9 @@ func (pc *FakePluginClient) MutateAdmission(ctx context.Context, req *backend.Ad
return nil, plugins.ErrMethodNotImplemented
}
func (pc *FakePluginClient) ConvertObject(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
if pc.ConvertObjectFunc != nil {
return pc.ConvertObjectFunc(ctx, req)
func (pc *FakePluginClient) ConvertObjects(ctx context.Context, req *backend.ConversionRequest) (*backend.ConversionResponse, error) {
if pc.ConvertObjectsFunc != nil {
return pc.ConvertObjectsFunc(ctx, req)
}
return nil, plugins.ErrMethodNotImplemented