1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 07:57:07 +00:00
kyverno/pkg/testrunner/utils.go

48 lines
1.1 KiB
Go
Raw Normal View History

2019-06-17 18:11:22 -07:00
package testrunner
import (
"os"
"path/filepath"
2019-06-17 18:11:22 -07:00
"github.com/kyverno/kyverno/pkg/logging"
2019-06-17 18:11:22 -07:00
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
// LoadFile loads file in byte buffer
func LoadFile(path string) ([]byte, error) {
if _, err := os.Stat(path); os.IsNotExist(err) {
return nil, err
}
path = filepath.Clean(path)
// We accept the risk of including a user provided file here.
return os.ReadFile(path) // #nosec G304
2019-06-17 18:11:22 -07:00
}
var kindToResource = map[string]string{
"ConfigMap": "configmaps",
"Endpoints": "endpoints",
"Namespace": "namespaces",
"Secret": "secrets",
2019-10-08 10:57:24 -07:00
"Service": "services",
2019-06-17 18:11:22 -07:00
"Deployment": "deployments",
"NetworkPolicy": "networkpolicies",
}
func getResourceFromKind(kind string) string {
if resource, ok := kindToResource[kind]; ok {
return resource
}
return ""
}
// ConvertToUnstructured converts a resource to unstructured format
func ConvertToUnstructured(data []byte) (*unstructured.Unstructured, error) {
resource := &unstructured.Unstructured{}
err := resource.UnmarshalJSON(data)
if err != nil {
logging.Error(err, "failed to unmarshal resource")
return nil, err
}
return resource, nil
}