func NewApp(logger logur.Logger, client client.Client, cache *ristretto.Cache, cacheTTL time.Duration) http.Handler {
	mux := http.NewServeMux()
	mux.Handle(imageValidate, newHTTPHandler(logger, client, cache, cacheTTL))
	logger.Info("newApp", map[string]interface{}{"app": imageValidate})
	return mux
}
NewApp creates new application
package app
import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
	"time"
	"github.com/dgraph-io/ristretto"
	admissionv1beta1 "k8s.io/api/admission/v1beta1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime"
	"k8s.io/apimachinery/pkg/runtime/serializer"
	"logur.dev/logur"
	"sigs.k8s.io/controller-runtime/pkg/client"
)
const imageValidate = "/imagecheck"
var (
	runtimeScheme = runtime.NewScheme()
	codecs        = serializer.NewCodecFactory(runtimeScheme)
	deserializer  = codecs.UniversalDeserializer()
)