mirror of
https://github.com/kyverno/kyverno.git
synced 2024-12-15 17:51:20 +00:00
88 lines
3 KiB
Go
88 lines
3 KiB
Go
package config
|
|
|
|
import (
|
|
"flag"
|
|
|
|
"github.com/golang/glog"
|
|
rest "k8s.io/client-go/rest"
|
|
clientcmd "k8s.io/client-go/tools/clientcmd"
|
|
)
|
|
|
|
const (
|
|
// These constants MUST be equal to the corresponding names in service definition in definitions/install.yaml
|
|
KubePolicyNamespace = "kyverno"
|
|
WebhookServiceName = "kyverno-svc"
|
|
|
|
MutatingWebhookConfigurationName = "kyverno-resource-mutating-webhook-cfg"
|
|
MutatingWebhookConfigurationDebugName = "kyverno-resource-mutating-webhook-cfg-debug"
|
|
MutatingWebhookName = "nirmata.kyverno.resource.mutating-webhook"
|
|
|
|
// ValidatingWebhookConfigurationName = "kyverno-validating-webhook-cfg"
|
|
// ValidatingWebhookConfigurationDebug = "kyverno-validating-webhook-cfg-debug"
|
|
// ValidatingWebhookName = "nirmata.kyverno.policy-validating-webhook"
|
|
|
|
VerifyMutatingWebhookConfigurationName = "kyverno-verify-mutating-webhook-cfg"
|
|
VerifyMutatingWebhookConfigurationDebugName = "kyverno-verify-mutating-webhook-cfg-debug"
|
|
VerifyMutatingWebhookName = "nirmata.kyverno.verify-mutating-webhook"
|
|
|
|
PolicyValidatingWebhookConfigurationName = "kyverno-policy-validating-webhook-cfg"
|
|
PolicyValidatingWebhookConfigurationDebugName = "kyverno-policy-validating-webhook-cfg-debug"
|
|
PolicyValidatingWebhookName = "nirmata.kyverno.policy-validating-webhook"
|
|
|
|
PolicyMutatingWebhookConfigurationName = "kyverno-policy-mutating-webhook-cfg"
|
|
PolicyMutatingWebhookConfigurationDebugName = "kyverno-policy-mutating-webhook-cfg-debug"
|
|
PolicyMutatingWebhookName = "nirmata.kyverno.policy-mutating-webhook"
|
|
|
|
// Due to kubernetes issue, we must use next literal constants instead of deployment TypeMeta fields
|
|
// Issue: https://github.com/kubernetes/kubernetes/pull/63972
|
|
// When the issue is closed, we should use TypeMeta struct instead of this constants
|
|
DeploymentKind = "Deployment"
|
|
DeploymentAPIVersion = "extensions/v1beta1"
|
|
KubePolicyDeploymentName = "kyverno"
|
|
)
|
|
|
|
var (
|
|
MutatingWebhookServicePath = "/mutate"
|
|
ValidatingWebhookServicePath = "/validate"
|
|
PolicyValidatingWebhookServicePath = "/policyvalidate"
|
|
PolicyMutatingWebhookServicePath = "/policymutate"
|
|
VerifyMutatingWebhookServicePath = "/verifymutate"
|
|
|
|
SupportedKinds = []string{
|
|
"ConfigMap",
|
|
"CronJob",
|
|
"DaemonSet",
|
|
"Deployment",
|
|
"Endpoints",
|
|
"HorizontalPodAutoscaler",
|
|
"Ingress",
|
|
"Job",
|
|
"LimitRange",
|
|
"Namespace",
|
|
"NetworkPolicy",
|
|
"PersistentVolumeClaim",
|
|
"PodDisruptionBudget",
|
|
"PodTemplate",
|
|
"ResourceQuota",
|
|
"Secret",
|
|
"Service",
|
|
"StatefulSet",
|
|
}
|
|
)
|
|
|
|
//LogDefaults sets default glog flags
|
|
func LogDefaultFlags() {
|
|
flag.Set("logtostderr", "true")
|
|
flag.Set("stderrthreshold", "WARNING")
|
|
flag.Set("v", "2")
|
|
}
|
|
|
|
//CreateClientConfig creates client config
|
|
func CreateClientConfig(kubeconfig string) (*rest.Config, error) {
|
|
if kubeconfig == "" {
|
|
glog.Info("Using in-cluster configuration")
|
|
return rest.InClusterConfig()
|
|
}
|
|
glog.V(4).Infof("Using configuration from '%s'", kubeconfig)
|
|
return clientcmd.BuildConfigFromFlags("", kubeconfig)
|
|
}
|