-
Notifications
You must be signed in to change notification settings - Fork 682
/
everything.go
43 lines (36 loc) · 1.02 KB
/
everything.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
41
42
43
package getambassadorio
import (
_ "embed"
"k8s.io/apimachinery/pkg/runtime"
runtimeutil "k8s.io/apimachinery/pkg/util/runtime"
"github.com/emissary-ingress/emissary/v3/pkg/api/getambassador.io/v1"
"github.com/emissary-ingress/emissary/v3/pkg/api/getambassador.io/v2"
"github.com/emissary-ingress/emissary/v3/pkg/api/getambassador.io/v3alpha1"
"github.com/emissary-ingress/emissary/v3/pkg/kates"
)
func AddToScheme(scheme *runtime.Scheme) error {
if err := v1.AddToScheme(scheme); err != nil {
return err
}
if err := v2.AddToScheme(scheme); err != nil {
return err
}
if err := v3alpha1.AddToScheme(scheme); err != nil {
return err
}
return nil
}
func BuildScheme() *runtime.Scheme {
scheme := runtime.NewScheme()
runtimeutil.Must(AddToScheme(scheme))
return scheme
}
//go:embed crds.yaml
var crdYAML string
func NewValidator() *kates.Validator {
crdObjs, err := kates.ParseManifests(crdYAML)
runtimeutil.Must(err)
validator, err := kates.NewValidator(nil, crdObjs)
runtimeutil.Must(err)
return validator
}