Documentation
¶
Index ¶
- Constants
- Variables
- type GRPCClient
- func (m *GRPCClient) ConfigurePlugin(config map[string]interface{}) error
- func (m *GRPCClient) PluginName() (string, error)
- func (m *GRPCClient) PolicyNames() ([]string, error)
- func (m *GRPCClient) Validate(policyName string, ar *admissionv1.AdmissionRequest) ([]policies.ResourceViolation, []policies.PatchOperation, error)
- type GRPCServer
- func (m *GRPCServer) ConfigurePlugin(ctx context.Context, in *proto.ConfigurePluginRequest) (*proto.ConfigurePluginResponse, error)
- func (m *GRPCServer) PluginName(ctx context.Context, in *proto.PluginNameRequest) (*proto.PluginNameResponse, error)
- func (m *GRPCServer) PolicyNames(ctx context.Context, in *proto.PolicyNamesRequest) (*proto.PolicyNamesResponse, error)
- func (m *GRPCServer) Validate(ctx context.Context, in *proto.ValidateRequest) (*proto.ValidateResponse, error)
- type KRailGRPCPlugin
- type KRailPlugin
- type Plugin
- func (p *Plugin) Configure(config map[string]interface{}) error
- func (p *Plugin) Kill()
- func (p *Plugin) Name() string
- func (p *Plugin) PolicyNames() []string
- func (p *Plugin) Validate(policyName string, ar *admissionv1.AdmissionRequest) ([]policies.ResourceViolation, []policies.PatchOperation, error)
- type PluginPolicy
Constants ¶
View Source
const GRPCPluginName = "K_RAIL_GRPC"
Variables ¶
View Source
var Handshake = plugin.HandshakeConfig{
ProtocolVersion: 1,
MagicCookieKey: "K_RAIL_PLUGIN",
MagicCookieValue: "TRUE",
}
Functions ¶
This section is empty.
Types ¶
type GRPCClient ¶
type GRPCClient struct {
// contains filtered or unexported fields
}
GRPCClient is an implementation of KRailPlugin that talks over RPC.
func (*GRPCClient) ConfigurePlugin ¶
func (m *GRPCClient) ConfigurePlugin(config map[string]interface{}) error
func (*GRPCClient) PluginName ¶
func (m *GRPCClient) PluginName() (string, error)
func (*GRPCClient) PolicyNames ¶
func (m *GRPCClient) PolicyNames() ([]string, error)
func (*GRPCClient) Validate ¶
func (m *GRPCClient) Validate(policyName string, ar *admissionv1.AdmissionRequest) ([]policies.ResourceViolation, []policies.PatchOperation, error)
type GRPCServer ¶
type GRPCServer struct { // This is the real implementation Impl KRailPlugin }
Here is the gRPC server that GRPCClient talks to.
func (*GRPCServer) ConfigurePlugin ¶
func (m *GRPCServer) ConfigurePlugin(ctx context.Context, in *proto.ConfigurePluginRequest) (*proto.ConfigurePluginResponse, error)
func (*GRPCServer) PluginName ¶
func (m *GRPCServer) PluginName(ctx context.Context, in *proto.PluginNameRequest) (*proto.PluginNameResponse, error)
func (*GRPCServer) PolicyNames ¶
func (m *GRPCServer) PolicyNames(ctx context.Context, in *proto.PolicyNamesRequest) (*proto.PolicyNamesResponse, error)
func (*GRPCServer) Validate ¶
func (m *GRPCServer) Validate(ctx context.Context, in *proto.ValidateRequest) (*proto.ValidateResponse, error)
type KRailGRPCPlugin ¶
type KRailGRPCPlugin struct { // GRPCPlugin must still implement the Plugin interface plugin.Plugin // Concrete implementation, written in Go. This is only used for plugins // that are written in Go. Impl KRailPlugin }
This is the implementation of plugin.GRPCPlugin so we can serve/consume this.
func (*KRailGRPCPlugin) GRPCClient ¶
func (p *KRailGRPCPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
func (*KRailGRPCPlugin) GRPCServer ¶
func (p *KRailGRPCPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
type KRailPlugin ¶
type KRailPlugin interface { PluginName() (string, error) PolicyNames() ([]string, error) ConfigurePlugin(config map[string]interface{}) error Validate(policyName string, ar *admissionv1.AdmissionRequest) ([]policies.ResourceViolation, []policies.PatchOperation, error) }
KRailPlugin is the interface that we're exposing as a plugin.
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
func LaunchPluginProcess ¶
func PluginsFromDirectory ¶
func (*Plugin) PolicyNames ¶
func (*Plugin) Validate ¶
func (p *Plugin) Validate(policyName string, ar *admissionv1.AdmissionRequest) ([]policies.ResourceViolation, []policies.PatchOperation, error)
type PluginPolicy ¶
type PluginPolicy struct {
// contains filtered or unexported fields
}
PluginPolicy implements the server.Policy interface
func NewPluginPolicy ¶
func NewPluginPolicy(name string, plugin Plugin) PluginPolicy
func (PluginPolicy) Name ¶
func (p PluginPolicy) Name() string
func (PluginPolicy) Validate ¶
func (p PluginPolicy) Validate(ctx context.Context, config policies.Config, ar *admissionv1.AdmissionRequest, ) ([]policies.ResourceViolation, []policies.PatchOperation)
Click to show internal directories.
Click to hide internal directories.