2019-06-17 18:11:22 -07:00
|
|
|
package testrunner
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
2020-03-17 16:25:34 -07:00
|
|
|
"sigs.k8s.io/controller-runtime/pkg/log"
|
2019-06-17 18:11:22 -07:00
|
|
|
)
|
|
|
|
|
2020-08-05 09:02:45 -07:00
|
|
|
var (
|
2020-10-07 15:09:52 -07:00
|
|
|
projectPath = envOr("PROJECT_PATH", "src/github.com/kyverno/kyverno")
|
2019-06-17 18:11:22 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
// LoadFile loads file in byte buffer
|
|
|
|
func LoadFile(path string) ([]byte, error) {
|
|
|
|
if _, err := os.Stat(path); os.IsNotExist(err) {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return ioutil.ReadFile(path)
|
|
|
|
}
|
|
|
|
|
|
|
|
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 ""
|
|
|
|
}
|
|
|
|
|
2020-01-24 12:05:53 -08:00
|
|
|
//ConvertToUnstructured converts a resource to unstructured format
|
2019-08-21 12:03:53 -07:00
|
|
|
func ConvertToUnstructured(data []byte) (*unstructured.Unstructured, error) {
|
|
|
|
resource := &unstructured.Unstructured{}
|
|
|
|
err := resource.UnmarshalJSON(data)
|
|
|
|
if err != nil {
|
2020-03-17 16:25:34 -07:00
|
|
|
log.Log.Error(err, "failed to unmarshal resource")
|
2019-08-21 12:03:53 -07:00
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return resource, nil
|
|
|
|
}
|
2020-08-05 09:02:45 -07:00
|
|
|
|
|
|
|
func envOr(name, def string) string {
|
|
|
|
if v, ok := os.LookupEnv(name); ok {
|
|
|
|
return v
|
|
|
|
}
|
|
|
|
return def
|
|
|
|
}
|