mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-05 15:37:19 +00:00
refactor: add a couple of constants in api (#4640)
Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com> Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com>
This commit is contained in:
parent
634dff5639
commit
42a2df56c1
12 changed files with 29 additions and 18 deletions
|
@ -3,4 +3,8 @@ package v1
|
||||||
const (
|
const (
|
||||||
// PodControllersAnnotation defines the annotation key for Pod-Controllers
|
// PodControllersAnnotation defines the annotation key for Pod-Controllers
|
||||||
PodControllersAnnotation = "pod-policies.kyverno.io/autogen-controllers"
|
PodControllersAnnotation = "pod-policies.kyverno.io/autogen-controllers"
|
||||||
|
// LabelAppManagedBy defines the label key for managed-by label
|
||||||
|
LabelAppManagedBy = "app.kubernetes.io/managed-by"
|
||||||
|
// ValueKyvernoApp defines the kyverno application value
|
||||||
|
ValueKyvernoApp = "kyverno"
|
||||||
)
|
)
|
||||||
|
|
|
@ -5,6 +5,7 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
||||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
pkglabels "k8s.io/apimachinery/pkg/labels"
|
pkglabels "k8s.io/apimachinery/pkg/labels"
|
||||||
|
@ -70,8 +71,8 @@ func GenerateLabelsSet(policyKey string, trigger Object) pkglabels.Set {
|
||||||
|
|
||||||
func managedBy(labels map[string]string) {
|
func managedBy(labels map[string]string) {
|
||||||
// ManagedBy label
|
// ManagedBy label
|
||||||
key := "app.kubernetes.io/managed-by"
|
key := kyvernov1.LabelAppManagedBy
|
||||||
value := "kyverno"
|
value := kyvernov1.ValueKyvernoApp
|
||||||
val, ok := labels[key]
|
val, ok := labels[key]
|
||||||
if ok {
|
if ok {
|
||||||
if val != value {
|
if val != value {
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/cornelk/hashmap"
|
"github.com/cornelk/hashmap"
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
kyvernov1alpha2 "github.com/kyverno/kyverno/api/kyverno/v1alpha2"
|
kyvernov1alpha2 "github.com/kyverno/kyverno/api/kyverno/v1alpha2"
|
||||||
policyreportv1alpha2 "github.com/kyverno/kyverno/api/policyreport/v1alpha2"
|
policyreportv1alpha2 "github.com/kyverno/kyverno/api/policyreport/v1alpha2"
|
||||||
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
||||||
|
@ -230,7 +231,7 @@ func CleanupPolicyReport(client versioned.Interface) error {
|
||||||
var gracePeriod int64 = 0
|
var gracePeriod int64 = 0
|
||||||
|
|
||||||
deleteOptions := metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod}
|
deleteOptions := metav1.DeleteOptions{GracePeriodSeconds: &gracePeriod}
|
||||||
selector := labels.SelectorFromSet(labels.Set(map[string]string{LabelSelectorKey: LabelSelectorValue}))
|
selector := labels.SelectorFromSet(labels.Set(map[string]string{LabelSelectorKey: kyvernov1.ValueKyvernoApp}))
|
||||||
|
|
||||||
err := client.KyvernoV1alpha2().ClusterReportChangeRequests().DeleteCollection(context.TODO(), deleteOptions, metav1.ListOptions{})
|
err := client.KyvernoV1alpha2().ClusterReportChangeRequests().DeleteCollection(context.TODO(), deleteOptions, metav1.ListOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
kyvernov1alpha2 "github.com/kyverno/kyverno/api/kyverno/v1alpha2"
|
kyvernov1alpha2 "github.com/kyverno/kyverno/api/kyverno/v1alpha2"
|
||||||
policyreportv1alpha2 "github.com/kyverno/kyverno/api/policyreport/v1alpha2"
|
policyreportv1alpha2 "github.com/kyverno/kyverno/api/policyreport/v1alpha2"
|
||||||
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
||||||
|
@ -38,8 +39,7 @@ const (
|
||||||
prWorkQueueName = "policy-report-controller"
|
prWorkQueueName = "policy-report-controller"
|
||||||
clusterpolicyreport = "clusterpolicyreport"
|
clusterpolicyreport = "clusterpolicyreport"
|
||||||
|
|
||||||
LabelSelectorKey = "managed-by"
|
LabelSelectorKey = "managed-by"
|
||||||
LabelSelectorValue = "kyverno"
|
|
||||||
|
|
||||||
deletedPolicyKey = "deletedpolicy"
|
deletedPolicyKey = "deletedpolicy"
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ const (
|
||||||
|
|
||||||
var LabelSelector = &metav1.LabelSelector{
|
var LabelSelector = &metav1.LabelSelector{
|
||||||
MatchLabels: map[string]string{
|
MatchLabels: map[string]string{
|
||||||
LabelSelectorKey: LabelSelectorValue,
|
LabelSelectorKey: kyvernov1.ValueKyvernoApp,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
@ -213,7 +214,7 @@ func (c *CertRenewer) writeSecret(name string, key *rsa.PrivateKey, certs ...*x5
|
||||||
Name: name,
|
Name: name,
|
||||||
Namespace: config.KyvernoNamespace(),
|
Namespace: config.KyvernoNamespace(),
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
ManagedByLabel: "kyverno",
|
ManagedByLabel: kyvernov1.ValueKyvernoApp,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Type: corev1.SecretTypeTLS,
|
Type: corev1.SecretTypeTLS,
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"encoding/pem"
|
"encoding/pem"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
appsv1 "k8s.io/api/apps/v1"
|
appsv1 "k8s.io/api/apps/v1"
|
||||||
corev1 "k8s.io/api/core/v1"
|
corev1 "k8s.io/api/core/v1"
|
||||||
|
@ -103,7 +104,7 @@ func IsSecretManagedByKyverno(secret *corev1.Secret) bool {
|
||||||
if labels == nil {
|
if labels == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if labels[ManagedByLabel] != "kyverno" {
|
if labels[ManagedByLabel] != kyvernov1.ValueKyvernoApp {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
"github.com/kyverno/kyverno/pkg/metrics"
|
"github.com/kyverno/kyverno/pkg/metrics"
|
||||||
"github.com/kyverno/kyverno/pkg/tls"
|
"github.com/kyverno/kyverno/pkg/tls"
|
||||||
|
@ -19,7 +20,6 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
managedByLabel string = "webhook.kyverno.io/managed-by"
|
managedByLabel string = "webhook.kyverno.io/managed-by"
|
||||||
kyvernoValue string = "kyverno"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -38,7 +38,7 @@ var (
|
||||||
}
|
}
|
||||||
vertifyObjectSelector = &metav1.LabelSelector{
|
vertifyObjectSelector = &metav1.LabelSelector{
|
||||||
MatchLabels: map[string]string{
|
MatchLabels: map[string]string{
|
||||||
"app.kubernetes.io/name": kyvernoValue,
|
"app.kubernetes.io/name": kyvernov1.ValueKyvernoApp,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
update = []admissionregistrationv1.OperationType{admissionregistrationv1.Update}
|
update = []admissionregistrationv1.OperationType{admissionregistrationv1.Update}
|
||||||
|
@ -75,7 +75,7 @@ func getHealthyPodsIP(pods []corev1.Pod) []string {
|
||||||
func (wrc *Register) GetKubePolicyClusterRoleName() (*rbacv1.ClusterRole, error) {
|
func (wrc *Register) GetKubePolicyClusterRoleName() (*rbacv1.ClusterRole, error) {
|
||||||
selector := &metav1.LabelSelector{
|
selector := &metav1.LabelSelector{
|
||||||
MatchLabels: map[string]string{
|
MatchLabels: map[string]string{
|
||||||
"app.kubernetes.io/name": kyvernoValue,
|
"app.kubernetes.io/name": kyvernov1.ValueKyvernoApp,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
clusterRoles, err := wrc.kubeClient.RbacV1().ClusterRoles().List(context.TODO(), metav1.ListOptions{LabelSelector: metav1.FormatLabelSelector(selector)})
|
clusterRoles, err := wrc.kubeClient.RbacV1().ClusterRoles().List(context.TODO(), metav1.ListOptions{LabelSelector: metav1.FormatLabelSelector(selector)})
|
||||||
|
@ -199,7 +199,7 @@ func generateObjectMeta(name string, owner ...metav1.OwnerReference) metav1.Obje
|
||||||
return metav1.ObjectMeta{
|
return metav1.ObjectMeta{
|
||||||
Name: name,
|
Name: name,
|
||||||
Labels: map[string]string{
|
Labels: map[string]string{
|
||||||
managedByLabel: kyvernoValue,
|
managedByLabel: kyvernov1.ValueKyvernoApp,
|
||||||
},
|
},
|
||||||
OwnerReferences: owner,
|
OwnerReferences: owner,
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
||||||
kyvernov1informers "github.com/kyverno/kyverno/pkg/client/informers/externalversions/kyverno/v1"
|
kyvernov1informers "github.com/kyverno/kyverno/pkg/client/informers/externalversions/kyverno/v1"
|
||||||
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
||||||
|
@ -223,7 +224,7 @@ func (wrc *Register) GetWebhookTimeOut() time.Duration {
|
||||||
func (wrc *Register) UpdateWebhooksCaBundle() error {
|
func (wrc *Register) UpdateWebhooksCaBundle() error {
|
||||||
selector := &metav1.LabelSelector{
|
selector := &metav1.LabelSelector{
|
||||||
MatchLabels: map[string]string{
|
MatchLabels: map[string]string{
|
||||||
managedByLabel: kyvernoValue,
|
managedByLabel: kyvernov1.ValueKyvernoApp,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
caData := wrc.readCaData()
|
caData := wrc.readCaData()
|
||||||
|
@ -419,7 +420,7 @@ func (wrc *Register) checkEndpoint() error {
|
||||||
}
|
}
|
||||||
selector := &metav1.LabelSelector{
|
selector := &metav1.LabelSelector{
|
||||||
MatchLabels: map[string]string{
|
MatchLabels: map[string]string{
|
||||||
"app.kubernetes.io/name": "kyverno",
|
"app.kubernetes.io/name": kyvernov1.ValueKyvernoApp,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
pods, err := wrc.kubeClient.CoreV1().Pods(config.KyvernoNamespace()).List(context.TODO(), metav1.ListOptions{LabelSelector: metav1.FormatLabelSelector(selector)})
|
pods, err := wrc.kubeClient.CoreV1().Pods(config.KyvernoNamespace()).List(context.TODO(), metav1.ListOptions{LabelSelector: metav1.FormatLabelSelector(selector)})
|
||||||
|
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
"github.com/kyverno/kyverno/pkg/event"
|
"github.com/kyverno/kyverno/pkg/event"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
@ -106,7 +107,7 @@ func (vc statusControl) UpdateLastRequestTimestmap(new time.Time) error {
|
||||||
label := lease.GetLabels()
|
label := lease.GetLabels()
|
||||||
if len(label) == 0 {
|
if len(label) == 0 {
|
||||||
label = make(map[string]string)
|
label = make(map[string]string)
|
||||||
label["app.kubernetes.io/name"] = "kyverno"
|
label["app.kubernetes.io/name"] = kyvernov1.ValueKyvernoApp
|
||||||
}
|
}
|
||||||
lease.SetLabels(label)
|
lease.SetLabels(label)
|
||||||
|
|
||||||
|
|
|
@ -156,7 +156,7 @@ func (h *generationHandler) HandleUpdatesForGenerateRules(request *admissionv1.A
|
||||||
h.handleUpdateGenerateSourceResource(resLabels)
|
h.handleUpdateGenerateSourceResource(resLabels)
|
||||||
}
|
}
|
||||||
|
|
||||||
if resLabels["app.kubernetes.io/managed-by"] == "kyverno" && resLabels["policy.kyverno.io/synchronize"] == "enable" && request.Operation == admissionv1.Update {
|
if resLabels[kyvernov1.LabelAppManagedBy] == kyvernov1.ValueKyvernoApp && resLabels["policy.kyverno.io/synchronize"] == "enable" && request.Operation == admissionv1.Update {
|
||||||
h.handleUpdateGenerateTargetResource(request, policies, resLabels)
|
h.handleUpdateGenerateTargetResource(request, policies, resLabels)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -211,7 +211,7 @@ func (h *handlers) handleDelete(logger logr.Logger, request *admissionv1.Admissi
|
||||||
}
|
}
|
||||||
|
|
||||||
resLabels := resource.GetLabels()
|
resLabels := resource.GetLabels()
|
||||||
if resLabels["app.kubernetes.io/managed-by"] == "kyverno" {
|
if resLabels[kyvernov1.LabelAppManagedBy] == kyvernov1.ValueKyvernoApp {
|
||||||
urName := resLabels["policy.kyverno.io/gr-name"]
|
urName := resLabels["policy.kyverno.io/gr-name"]
|
||||||
ur, err := h.urLister.Get(urName)
|
ur, err := h.urLister.Get(urName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -10,6 +10,7 @@ import (
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
"github.com/julienschmidt/httprouter"
|
"github.com/julienschmidt/httprouter"
|
||||||
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
"github.com/kyverno/kyverno/pkg/toggle"
|
"github.com/kyverno/kyverno/pkg/toggle"
|
||||||
"github.com/kyverno/kyverno/pkg/utils"
|
"github.com/kyverno/kyverno/pkg/utils"
|
||||||
|
@ -133,7 +134,7 @@ func protect(inner handlers.AdmissionHandler) handlers.AdmissionHandler {
|
||||||
}
|
}
|
||||||
for _, resource := range []unstructured.Unstructured{newResource, oldResource} {
|
for _, resource := range []unstructured.Unstructured{newResource, oldResource} {
|
||||||
resLabels := resource.GetLabels()
|
resLabels := resource.GetLabels()
|
||||||
if resLabels["app.kubernetes.io/managed-by"] == "kyverno" {
|
if resLabels[kyvernov1.LabelAppManagedBy] == kyvernov1.ValueKyvernoApp {
|
||||||
if request.UserInfo.Username != fmt.Sprintf("system:serviceaccount:%s:%s", config.KyvernoNamespace(), config.KyvernoServiceAccountName()) {
|
if request.UserInfo.Username != fmt.Sprintf("system:serviceaccount:%s:%s", config.KyvernoNamespace(), config.KyvernoServiceAccountName()) {
|
||||||
logger.Info("Access to the resource not authorized, this is a kyverno managed resource and should be altered only by kyverno")
|
logger.Info("Access to the resource not authorized, this is a kyverno managed resource and should be altered only by kyverno")
|
||||||
return admissionutils.ResponseFailure("A kyverno managed resource can only be modified by kyverno")
|
return admissionutils.ResponseFailure("A kyverno managed resource can only be modified by kyverno")
|
||||||
|
|
Loading…
Add table
Reference in a new issue