mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-24 08:36:46 +00:00
feat: support rest mapper in cli with cluster enabled (#12319)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
b3fa7b577b
commit
43ddc8c31e
1 changed files with 14 additions and 6 deletions
|
@ -43,6 +43,7 @@ import (
|
||||||
admissionv1 "k8s.io/api/admission/v1"
|
admissionv1 "k8s.io/api/admission/v1"
|
||||||
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
|
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
@ -350,6 +351,7 @@ func (c *ApplyCommandConfig) applyValidatingPolicies(
|
||||||
eng := engine.NewEngine(provider, namespaceProvider, matching.NewMatcher())
|
eng := engine.NewEngine(provider, namespaceProvider, matching.NewMatcher())
|
||||||
// TODO: mock when no cluster provided
|
// TODO: mock when no cluster provided
|
||||||
gctxStore := gctxstore.New()
|
gctxStore := gctxstore.New()
|
||||||
|
var restMapper meta.RESTMapper
|
||||||
var contextProvider celpolicy.Context
|
var contextProvider celpolicy.Context
|
||||||
if dclient != nil {
|
if dclient != nil {
|
||||||
contextProvider, err = celpolicy.NewContextProvider(
|
contextProvider, err = celpolicy.NewContextProvider(
|
||||||
|
@ -360,12 +362,18 @@ func (c *ApplyCommandConfig) applyValidatingPolicies(
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
apiGroupResources, err := restmapper.GetAPIGroupResources(dclient.GetKubeClient().Discovery())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
restMapper = restmapper.NewDiscoveryRESTMapper(apiGroupResources)
|
||||||
|
} else {
|
||||||
|
apiGroupResources, err := data.APIGroupResources()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
restMapper = restmapper.NewDiscoveryRESTMapper(apiGroupResources)
|
||||||
}
|
}
|
||||||
apiGroupResources, err := data.APIGroupResources()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
restMapper := restmapper.NewDiscoveryRESTMapper(apiGroupResources)
|
|
||||||
responses := make([]engineapi.EngineResponse, 0)
|
responses := make([]engineapi.EngineResponse, 0)
|
||||||
responsesTemp := make([]engine.EngineResponse, 0)
|
responsesTemp := make([]engine.EngineResponse, 0)
|
||||||
for _, resource := range resources {
|
for _, resource := range resources {
|
||||||
|
@ -386,7 +394,7 @@ func (c *ApplyCommandConfig) applyValidatingPolicies(
|
||||||
contextProvider,
|
contextProvider,
|
||||||
gvk,
|
gvk,
|
||||||
gvr,
|
gvr,
|
||||||
// TODO
|
// TODO: how to manage subresource ?
|
||||||
"",
|
"",
|
||||||
resource.GetName(),
|
resource.GetName(),
|
||||||
resource.GetNamespace(),
|
resource.GetNamespace(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue