-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.go
40 lines (30 loc) · 1.05 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package main
import (
"fmt"
"os"
"github.com/3scale/kiper/pkg/queries"
"github.com/open-policy-agent/opa/runtime"
"github.com/3scale/kiper/internal/istio_plugin"
"github.com/open-policy-agent/opa/cmd"
"github.com/open-policy-agent/opa/plugins"
)
// Factory defines the interface OPA uses to instantiate a plugin.
type Factory struct{}
// New returns the object initialized with a valid plugin configuration.
func (Factory) New(m *plugins.Manager, config interface{}) plugins.Plugin {
return istio_plugin.New(m, config.(*istio_plugin.Config))
}
// Validate returns a valid configuration to instantiate the plugin.
func (Factory) Validate(m *plugins.Manager, config []byte) (interface{}, error) {
return istio_plugin.Validate(m, config)
}
func main() {
runtime.RegisterPlugin("envoy.ext_authz.grpc", Factory{}) // for backwards compatibility
runtime.RegisterPlugin("envoy_ext_authz_grpc", Factory{})
queries.RegisterThreeScaleQueries()
queries.RegisterRateLimitQueries()
if err := cmd.RootCommand.Execute(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}