From af81a0acbb08adbe44940cdd1de0da5151977e05 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Thu, 26 Jan 2023 09:18:39 +0100 Subject: [PATCH 01/12] fix for ready replica set check --- components/telemetry-operator/internal/kubernetes/deployment.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/telemetry-operator/internal/kubernetes/deployment.go b/components/telemetry-operator/internal/kubernetes/deployment.go index 44154ae356bb..93e8e7d45b6a 100644 --- a/components/telemetry-operator/internal/kubernetes/deployment.go +++ b/components/telemetry-operator/internal/kubernetes/deployment.go @@ -25,7 +25,7 @@ func (dp *DeploymentProber) IsReady(ctx context.Context, name types.NamespacedNa generation := d.Generation observedGeneration := d.Status.ObservedGeneration updated := d.Status.UpdatedReplicas - desired := d.Status.Replicas + desired := *d.Spec.Replicas ready := d.Status.ReadyReplicas log.V(1).Info(fmt.Sprintf("Checking Deployment: updated: %d, desired: %d, ready: %d, generation: %d, observed generation: %d", From 26c2aebdf31b01836c603ce2cccdd93e020dd439 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Thu, 26 Jan 2023 14:04:59 +0100 Subject: [PATCH 02/12] unit test added --- .../internal/kubernetes/deployment_test.go | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 components/telemetry-operator/internal/kubernetes/deployment_test.go diff --git a/components/telemetry-operator/internal/kubernetes/deployment_test.go b/components/telemetry-operator/internal/kubernetes/deployment_test.go new file mode 100644 index 000000000000..e56419ceac33 --- /dev/null +++ b/components/telemetry-operator/internal/kubernetes/deployment_test.go @@ -0,0 +1,55 @@ +package kubernetes + +import ( + "context" + "github.com/stretchr/testify/require" + appsv1 "k8s.io/api/apps/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "sigs.k8s.io/controller-runtime/pkg/client/fake" + "testing" +) + +func TestDeploymentProber_IsReady(t *testing.T) { + tests := []struct { + summary string + updatedReplicas int32 + desiredScheduled int32 + numberReady int32 + observedGeneration int64 + desiredGeneration int64 + expected bool + }{ + {summary: "all scheduled all ready", desiredScheduled: 1, numberReady: 1, updatedReplicas: 1, expected: true}, + {summary: "all scheduled one ready", desiredScheduled: 2, numberReady: 1, updatedReplicas: 2, expected: false}, + {summary: "all scheduled zero ready", desiredScheduled: 1, numberReady: 0, updatedReplicas: 1, expected: false}, + {summary: "scheduled mismatch", desiredScheduled: 1, numberReady: 2, updatedReplicas: 2, expected: false}, + {summary: "desired scheduled mismatch", desiredScheduled: 2, numberReady: 2, updatedReplicas: 1, expected: false}, + {summary: "generation mismatch", observedGeneration: 1, desiredGeneration: 2, expected: false}, + } + + for _, test := range tests { + tc := test + t.Run(tc.summary, func(t *testing.T) { + t.Parallel() + + deployment := &appsv1.Deployment{ + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "kyma-system", Generation: tc.desiredGeneration}, + Spec: appsv1.DeploymentSpec{Replicas: &tc.desiredScheduled}, + Status: appsv1.DeploymentStatus{ + ReadyReplicas: tc.numberReady, + UpdatedReplicas: tc.updatedReplicas, + ObservedGeneration: tc.observedGeneration, + }, + } + fakeClient := fake.NewClientBuilder().WithObjects(deployment).Build() + + sut := DeploymentProber{fakeClient} + ready, err := sut.IsReady(context.Background(), types.NamespacedName{Name: "foo", Namespace: "kyma-system"}) + + require.NoError(t, err) + require.Equal(t, tc.expected, ready) + + }) + } +} \ No newline at end of file From f7e02b025510d9ff102a548fc47c01f9179d755f Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Thu, 26 Jan 2023 15:05:11 +0100 Subject: [PATCH 03/12] image bump --- resources/telemetry/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/telemetry/values.yaml b/resources/telemetry/values.yaml index 6f366768c2c9..422b739a2587 100644 --- a/resources/telemetry/values.yaml +++ b/resources/telemetry/values.yaml @@ -7,7 +7,7 @@ global: version: "PR-16573" telemetry_operator: name: "telemetry-operator" - version: "PR-16629" + version: "PR-16666" telemetry_webhook_cert_init: name: "webhook-cert-init" version: "PR-16573" From 47cf1fe1a78aa6a85667a1e60b9b2e8773ee22ab Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Fri, 27 Jan 2023 16:12:43 +0100 Subject: [PATCH 04/12] readiness check against replicaset --- .../internal/kubernetes/deployment.go | 87 ++++++++++++++++--- .../internal/kubernetes/deployment_test.go | 65 +++++++++----- 2 files changed, 120 insertions(+), 32 deletions(-) diff --git a/components/telemetry-operator/internal/kubernetes/deployment.go b/components/telemetry-operator/internal/kubernetes/deployment.go index 93e8e7d45b6a..e01bfd96e158 100644 --- a/components/telemetry-operator/internal/kubernetes/deployment.go +++ b/components/telemetry-operator/internal/kubernetes/deployment.go @@ -4,10 +4,13 @@ import ( "context" "fmt" v1 "k8s.io/api/apps/v1" - + corev1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + k8slabels "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client" - logf "sigs.k8s.io/controller-runtime/pkg/log" + "sort" ) type DeploymentProber struct { @@ -15,21 +18,81 @@ type DeploymentProber struct { } func (dp *DeploymentProber) IsReady(ctx context.Context, name types.NamespacedName) (bool, error) { - log := logf.FromContext(ctx) - var d v1.Deployment if err := dp.Get(ctx, name, &d); err != nil { return false, fmt.Errorf("failed to get %s/%s Deployment: %v", name.Namespace, name.Name, err) } - generation := d.Generation - observedGeneration := d.Status.ObservedGeneration - updated := d.Status.UpdatedReplicas - desired := *d.Spec.Replicas - ready := d.Status.ReadyReplicas + desiredReplicas := *d.Spec.Replicas + var allReplicaSets v1.ReplicaSetList + + err := dp.List( + ctx, + &allReplicaSets, + &client.ListOptions{ + LabelSelector: k8slabels.SelectorFromSet(d.Spec.Selector.MatchLabels), + Namespace: d.Namespace}, + ) + + if err := dp.Get(ctx, name, &d); err != nil { + return false, fmt.Errorf("failed to get %s/%s ReplicaSet for deployment: %v", name.Namespace, name.Name, err) + } + + replicaSet, err := getLatestReplicaSet(&d, &allReplicaSets) + if err != nil || replicaSet == nil { + return false, err + } + + isReady := replicaSet.Status.ReadyReplicas >= desiredReplicas + return isReady, nil +} + +func getLatestReplicaSet(deployment *v1.Deployment, allReplicaSets *v1.ReplicaSetList) (*v1.ReplicaSet, error) { + var ownedReplicaSets []*v1.ReplicaSet + for i := range allReplicaSets.Items { + if metav1.IsControlledBy(&allReplicaSets.Items[i], deployment) { + ownedReplicaSets = append(ownedReplicaSets, &allReplicaSets.Items[i]) + } + } + + if len(ownedReplicaSets) == 0 { + return nil, nil + } - log.V(1).Info(fmt.Sprintf("Checking Deployment: updated: %d, desired: %d, ready: %d, generation: %d, observed generation: %d", - updated, desired, ready, generation, observedGeneration), "name", name.Name) + return findNewReplicaSet(deployment, ownedReplicaSets), nil +} - return observedGeneration == generation && updated == desired && ready >= desired, nil +// findNewReplicaSet returns the new RS this given deployment targets (the one with the same pod template). +func findNewReplicaSet(deployment *v1.Deployment, rsList []*v1.ReplicaSet) *v1.ReplicaSet { + sort.Sort(replicaSetsByCreationTimestamp(rsList)) + for i := range rsList { + if equalIgnoreHash(&rsList[i].Spec.Template, &deployment.Spec.Template) { + // In rare cases, such as after cluster upgrades, Deployment may end up with + // having more than one new ReplicaSets that have the same template as its template, + // see https://github.com/kubernetes/kubernetes/issues/40415 + // We deterministically choose the oldest new ReplicaSet. + return rsList[i] + } + } + // new ReplicaSet does not exist. + return nil +} + +func equalIgnoreHash(template1, template2 *corev1.PodTemplateSpec) bool { + t1Copy := template1.DeepCopy() + t2Copy := template2.DeepCopy() + delete(t1Copy.Labels, v1.DefaultDeploymentUniqueLabelKey) + delete(t2Copy.Labels, v1.DefaultDeploymentUniqueLabelKey) + return apiequality.Semantic.DeepEqual(t1Copy, t2Copy) +} + +type replicaSetsByCreationTimestamp []*v1.ReplicaSet + +func (o replicaSetsByCreationTimestamp) Len() int { return len(o) } +func (o replicaSetsByCreationTimestamp) Swap(i, j int) { o[i], o[j] = o[j], o[i] } +func (o replicaSetsByCreationTimestamp) Less(i, j int) bool { + if o[i].CreationTimestamp.Equal(&o[j].CreationTimestamp) { + return o[i].Name < o[j].Name + } + return o[i].CreationTimestamp.Before(&o[j].CreationTimestamp) } diff --git a/components/telemetry-operator/internal/kubernetes/deployment_test.go b/components/telemetry-operator/internal/kubernetes/deployment_test.go index e56419ceac33..71822d0d3d2c 100644 --- a/components/telemetry-operator/internal/kubernetes/deployment_test.go +++ b/components/telemetry-operator/internal/kubernetes/deployment_test.go @@ -12,37 +12,62 @@ import ( func TestDeploymentProber_IsReady(t *testing.T) { tests := []struct { - summary string - updatedReplicas int32 - desiredScheduled int32 - numberReady int32 - observedGeneration int64 - desiredGeneration int64 - expected bool + summary string + desiredScheduled int32 + numberReady int32 + expected bool }{ - {summary: "all scheduled all ready", desiredScheduled: 1, numberReady: 1, updatedReplicas: 1, expected: true}, - {summary: "all scheduled one ready", desiredScheduled: 2, numberReady: 1, updatedReplicas: 2, expected: false}, - {summary: "all scheduled zero ready", desiredScheduled: 1, numberReady: 0, updatedReplicas: 1, expected: false}, - {summary: "scheduled mismatch", desiredScheduled: 1, numberReady: 2, updatedReplicas: 2, expected: false}, - {summary: "desired scheduled mismatch", desiredScheduled: 2, numberReady: 2, updatedReplicas: 1, expected: false}, - {summary: "generation mismatch", observedGeneration: 1, desiredGeneration: 2, expected: false}, + {summary: "all scheduled all ready", desiredScheduled: 1, numberReady: 1, expected: true}, + {summary: "all scheduled one ready", desiredScheduled: 2, numberReady: 1, expected: false}, + {summary: "all scheduled zero ready", desiredScheduled: 1, numberReady: 0, expected: false}, } for _, test := range tests { tc := test t.Run(tc.summary, func(t *testing.T) { + t.Parallel() + matchLabels := make(map[string]string) + matchLabels["test.deployment.name"] = "test-deployment" + deployment := &appsv1.Deployment{ - ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "kyma-system", Generation: tc.desiredGeneration}, - Spec: appsv1.DeploymentSpec{Replicas: &tc.desiredScheduled}, + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "kyma-system"}, + Spec: appsv1.DeploymentSpec{ + Replicas: &tc.desiredScheduled, + Selector: &metav1.LabelSelector{MatchLabels: matchLabels}, + }, Status: appsv1.DeploymentStatus{ - ReadyReplicas: tc.numberReady, - UpdatedReplicas: tc.updatedReplicas, - ObservedGeneration: tc.observedGeneration, + ReadyReplicas: tc.numberReady, + }, + } + + rs := &appsv1.ReplicaSet{ + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + Namespace: "kyma-system", + Labels: deployment.Spec.Selector.MatchLabels, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(deployment, deployment.GroupVersionKind())}, }, + Spec: appsv1.ReplicaSetSpec{ + Selector: deployment.Spec.Selector, + Replicas: &tc.desiredScheduled, + Template: deployment.Spec.Template, + }, + Status: appsv1.ReplicaSetStatus{ + ReadyReplicas: tc.numberReady, + Replicas: tc.numberReady, + }, + } + + itemList := make([]appsv1.ReplicaSet, 1) + + itemList = append(itemList, *rs) + rsList := &appsv1.ReplicaSetList{ + Items: itemList, } - fakeClient := fake.NewClientBuilder().WithObjects(deployment).Build() + + fakeClient := fake.NewClientBuilder().WithObjects(deployment).WithLists(rsList).Build() sut := DeploymentProber{fakeClient} ready, err := sut.IsReady(context.Background(), types.NamespacedName{Name: "foo", Namespace: "kyma-system"}) @@ -52,4 +77,4 @@ func TestDeploymentProber_IsReady(t *testing.T) { }) } -} \ No newline at end of file +} From 05062a3f34dcc8fd7f52a91a61d86bc0279abf84 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 07:56:15 +0100 Subject: [PATCH 05/12] Apply suggestions from code review Co-authored-by: Stanislav Khalash --- .../internal/kubernetes/deployment.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/components/telemetry-operator/internal/kubernetes/deployment.go b/components/telemetry-operator/internal/kubernetes/deployment.go index e01bfd96e158..3efe3f8d7ceb 100644 --- a/components/telemetry-operator/internal/kubernetes/deployment.go +++ b/components/telemetry-operator/internal/kubernetes/deployment.go @@ -26,12 +26,13 @@ func (dp *DeploymentProber) IsReady(ctx context.Context, name types.NamespacedNa desiredReplicas := *d.Spec.Replicas var allReplicaSets v1.ReplicaSetList - err := dp.List( - ctx, - &allReplicaSets, - &client.ListOptions{ - LabelSelector: k8slabels.SelectorFromSet(d.Spec.Selector.MatchLabels), - Namespace: d.Namespace}, + listOps := &client.ListOptions{ + LabelSelector: k8slabels.SelectorFromSet(d.Spec.Selector.MatchLabels), + Namespace: d.Namespace, + } + if err := dp.List(ctx, &allReplicaSets, listOps); err != nil { + return false, fmt.Errof("failed to list ReplicaSets: %v", err) + } ) if err := dp.Get(ctx, name, &d); err != nil { @@ -40,7 +41,7 @@ func (dp *DeploymentProber) IsReady(ctx context.Context, name types.NamespacedNa replicaSet, err := getLatestReplicaSet(&d, &allReplicaSets) if err != nil || replicaSet == nil { - return false, err + return false, fmt.Errof("failed to get latest ReplicaSet: %v", err) } isReady := replicaSet.Status.ReadyReplicas >= desiredReplicas From d97ab06c213ee2f0caf08b3b41d6e685b3d22f67 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 08:10:18 +0100 Subject: [PATCH 06/12] sytax fixes --- .../telemetry-operator/internal/kubernetes/deployment.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/telemetry-operator/internal/kubernetes/deployment.go b/components/telemetry-operator/internal/kubernetes/deployment.go index 3efe3f8d7ceb..dcf7ca8acd09 100644 --- a/components/telemetry-operator/internal/kubernetes/deployment.go +++ b/components/telemetry-operator/internal/kubernetes/deployment.go @@ -31,9 +31,9 @@ func (dp *DeploymentProber) IsReady(ctx context.Context, name types.NamespacedNa Namespace: d.Namespace, } if err := dp.List(ctx, &allReplicaSets, listOps); err != nil { - return false, fmt.Errof("failed to list ReplicaSets: %v", err) + return false, fmt.Errorf("failed to list ReplicaSets: %v", err) } - ) + if err := dp.Get(ctx, name, &d); err != nil { return false, fmt.Errorf("failed to get %s/%s ReplicaSet for deployment: %v", name.Namespace, name.Name, err) @@ -41,7 +41,7 @@ func (dp *DeploymentProber) IsReady(ctx context.Context, name types.NamespacedNa replicaSet, err := getLatestReplicaSet(&d, &allReplicaSets) if err != nil || replicaSet == nil { - return false, fmt.Errof("failed to get latest ReplicaSet: %v", err) + return false, fmt.Errorf("failed to get latest ReplicaSet: %v", err) } isReady := replicaSet.Status.ReadyReplicas >= desiredReplicas From 2b879041d44c8714b81cbb39c21cbedc695670d0 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 08:10:59 +0100 Subject: [PATCH 07/12] sytax fixes --- .../telemetry-operator/internal/kubernetes/deployment.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/components/telemetry-operator/internal/kubernetes/deployment.go b/components/telemetry-operator/internal/kubernetes/deployment.go index dcf7ca8acd09..1a0ab2ef159c 100644 --- a/components/telemetry-operator/internal/kubernetes/deployment.go +++ b/components/telemetry-operator/internal/kubernetes/deployment.go @@ -26,15 +26,14 @@ func (dp *DeploymentProber) IsReady(ctx context.Context, name types.NamespacedNa desiredReplicas := *d.Spec.Replicas var allReplicaSets v1.ReplicaSetList - listOps := &client.ListOptions{ - LabelSelector: k8slabels.SelectorFromSet(d.Spec.Selector.MatchLabels), - Namespace: d.Namespace, + listOps := &client.ListOptions{ + LabelSelector: k8slabels.SelectorFromSet(d.Spec.Selector.MatchLabels), + Namespace: d.Namespace, } if err := dp.List(ctx, &allReplicaSets, listOps); err != nil { - return false, fmt.Errorf("failed to list ReplicaSets: %v", err) + return false, fmt.Errorf("failed to list ReplicaSets: %v", err) } - if err := dp.Get(ctx, name, &d); err != nil { return false, fmt.Errorf("failed to get %s/%s ReplicaSet for deployment: %v", name.Namespace, name.Name, err) } From 31d6f12d3cf6a51018e565fd55338d87870b3207 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 11:07:39 +0100 Subject: [PATCH 08/12] cluster role for replicasets added --- components/telemetry-operator/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/components/telemetry-operator/main.go b/components/telemetry-operator/main.go index 02bb4c94db86..b2f47ba9c2f4 100644 --- a/components/telemetry-operator/main.go +++ b/components/telemetry-operator/main.go @@ -144,6 +144,7 @@ func getEnvOrDefault(envVar string, defaultValue string) string { //+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups=apps,resources=daemonsets,verbs=get;list;watch;create;update;patch;delete +//+kubebuilder:rbac:groups=apps,resources=replicasets,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups=monitoring.coreos.com,resources=servicemonitors,verbs=get;list;watch;create;update;patch;delete From bc12fcc51643e7d6ad5d8c8e3f25396acec2b9a5 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 11:36:06 +0100 Subject: [PATCH 09/12] cluster role for replicasets added --- .../telemetry-operator/config/rbac/role.yaml | 12 ++++++++++++ .../charts/operator/templates/role.yaml | 16 ++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/components/telemetry-operator/config/rbac/role.yaml b/components/telemetry-operator/config/rbac/role.yaml index 5df6177eb453..6ade27431513 100644 --- a/components/telemetry-operator/config/rbac/role.yaml +++ b/components/telemetry-operator/config/rbac/role.yaml @@ -72,6 +72,18 @@ rules: - patch - update - watch +- apiGroups: + - apps + resources: + - replicasets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch - apiGroups: - monitoring.coreos.com resources: diff --git a/resources/telemetry/charts/operator/templates/role.yaml b/resources/telemetry/charts/operator/templates/role.yaml index 3976f0671a64..6ade27431513 100644 --- a/resources/telemetry/charts/operator/templates/role.yaml +++ b/resources/telemetry/charts/operator/templates/role.yaml @@ -2,8 +2,8 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: {{ include "operator.fullname" . }}-manager-role - namespace: {{ .Release.Namespace }} + creationTimestamp: null + name: manager-role rules: - apiGroups: - "" @@ -72,6 +72,18 @@ rules: - patch - update - watch +- apiGroups: + - apps + resources: + - replicasets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch - apiGroups: - monitoring.coreos.com resources: From 0754736f00598279a13d211c02df9f6ca4646ba3 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 11:38:26 +0100 Subject: [PATCH 10/12] cluster role for replicasets added --- resources/telemetry/charts/operator/templates/role.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/telemetry/charts/operator/templates/role.yaml b/resources/telemetry/charts/operator/templates/role.yaml index 6ade27431513..159dbd924a43 100644 --- a/resources/telemetry/charts/operator/templates/role.yaml +++ b/resources/telemetry/charts/operator/templates/role.yaml @@ -2,8 +2,8 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - creationTimestamp: null - name: manager-role + name: {{ include "operator.fullname" . }}-manager-role + namespace: {{ .Release.Namespace } rules: - apiGroups: - "" From a6e8748fd93dababa2cd47f1cd39fe4c52d3f60a Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 11:39:39 +0100 Subject: [PATCH 11/12] fix sytax --- resources/telemetry/charts/operator/templates/role.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/telemetry/charts/operator/templates/role.yaml b/resources/telemetry/charts/operator/templates/role.yaml index 159dbd924a43..cc01112bdfe8 100644 --- a/resources/telemetry/charts/operator/templates/role.yaml +++ b/resources/telemetry/charts/operator/templates/role.yaml @@ -3,7 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "operator.fullname" . }}-manager-role - namespace: {{ .Release.Namespace } + namespace: {{ .Release.Namespace }} rules: - apiGroups: - "" From 0ed03ca3b9a9dd4402f6fd22544dd81db891e3e2 Mon Sep 17 00:00:00 2001 From: Hisar Balik Date: Mon, 30 Jan 2023 11:43:07 +0100 Subject: [PATCH 12/12] cluster role for replicasets updated --- components/telemetry-operator/config/rbac/role.yaml | 4 ---- components/telemetry-operator/main.go | 2 +- resources/telemetry/charts/operator/templates/role.yaml | 4 ---- 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/components/telemetry-operator/config/rbac/role.yaml b/components/telemetry-operator/config/rbac/role.yaml index 6ade27431513..ccaf686f7044 100644 --- a/components/telemetry-operator/config/rbac/role.yaml +++ b/components/telemetry-operator/config/rbac/role.yaml @@ -77,12 +77,8 @@ rules: resources: - replicasets verbs: - - create - - delete - get - list - - patch - - update - watch - apiGroups: - monitoring.coreos.com diff --git a/components/telemetry-operator/main.go b/components/telemetry-operator/main.go index 32fc1927f002..9d16c535d85f 100644 --- a/components/telemetry-operator/main.go +++ b/components/telemetry-operator/main.go @@ -144,7 +144,7 @@ func getEnvOrDefault(envVar string, defaultValue string) string { //+kubebuilder:rbac:groups=apps,resources=deployments,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups=apps,resources=daemonsets,verbs=get;list;watch;create;update;patch;delete -//+kubebuilder:rbac:groups=apps,resources=replicasets,verbs=get;list;watch;create;update;patch;delete +//+kubebuilder:rbac:groups=apps,resources=replicasets,verbs=get;list;watch //+kubebuilder:rbac:groups=monitoring.coreos.com,resources=servicemonitors,verbs=get;list;watch;create;update;patch;delete diff --git a/resources/telemetry/charts/operator/templates/role.yaml b/resources/telemetry/charts/operator/templates/role.yaml index cc01112bdfe8..2b7fafa46cb7 100644 --- a/resources/telemetry/charts/operator/templates/role.yaml +++ b/resources/telemetry/charts/operator/templates/role.yaml @@ -77,12 +77,8 @@ rules: resources: - replicasets verbs: - - create - - delete - get - list - - patch - - update - watch - apiGroups: - monitoring.coreos.com