Skip to content

Commit 9389358

Browse files
committed
telemeter: start telemeter deprecation by removing all objects
In openshift-4.21 we can then remove the related artifacts and code from the repo. Signed-off-by: Jan Fajerski <[email protected]>
1 parent 6fec9c1 commit 9389358

File tree

8 files changed

+3
-389
lines changed

8 files changed

+3
-389
lines changed

manifests/image-references

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ spec:
4646
from:
4747
kind: DockerImage
4848
name: quay.io/openshift/origin-kube-rbac-proxy:latest
49-
- name: telemeter
50-
from:
51-
kind: DockerImage
52-
name: quay.io/openshift/origin-telemeter:latest
5349
- name: prom-label-proxy
5450
from:
5551
kind: DockerImage

pkg/operator/operator.go

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,6 @@ const (
161161
// see https://github.com/kubernetes/apiserver/blob/b571c70e6e823fd78910c3f5b9be895a756f4cbb/pkg/server/options/authentication.go#L239
162162
apiAuthenticationConfigMap = "kube-system/extension-apiserver-authentication"
163163
kubeletServingCAConfigMap = "openshift-config-managed/kubelet-serving-ca"
164-
telemeterCABundleConfigMap = "openshift-monitoring/telemeter-trusted-ca-bundle"
165164
alertmanagerCABundleConfigMap = "openshift-monitoring/alertmanager-trusted-ca-bundle"
166165
grpcTLS = "openshift-monitoring/grpc-tls"
167166
metricsClientCerts = "openshift-monitoring/metrics-client-certs"
@@ -480,30 +479,6 @@ func New(
480479
return nil, fmt.Errorf("failed to create client certificate controller: %w", err)
481480
}
482481

483-
// csrFederateController runs a controller that requests a client TLS
484-
// certificate for the telemeter client. This certificate is used to
485-
// authenticate against the Prometheus /federate API endpoint.
486-
csrFederateController, err := csr.NewClientCertificateController(
487-
csr.ClientCertOption{
488-
SecretNamespace: "openshift-monitoring",
489-
SecretName: "federate-client-certs",
490-
AdditionalAnnotations: certrotation.AdditionalAnnotations{
491-
JiraComponent: "Monitoring",
492-
},
493-
},
494-
csrOption,
495-
kubeInformersOperatorNS.Certificates().V1().CertificateSigningRequests(),
496-
o.client.KubernetesInterface().CertificatesV1().CertificateSigningRequests(),
497-
kubeInformersOperatorNS.Core().V1().Secrets(),
498-
o.client.KubernetesInterface().CoreV1(),
499-
o.client.EventRecorder(),
500-
"OpenShiftMonitoringTelemeterClientCertRequester",
501-
)
502-
503-
if err != nil {
504-
return nil, fmt.Errorf("failed to create federate certificate controller: %w", err)
505-
}
506-
507482
csrMetricsServerController, err := csr.NewClientCertificateController(
508483
csr.ClientCertOption{
509484
SecretNamespace: "openshift-monitoring",
@@ -527,7 +502,6 @@ func New(
527502

528503
o.controllersToRunFunc = append(
529504
o.controllersToRunFunc,
530-
csrFederateController.Run,
531505
csrController.Run,
532506
csrMetricsServerController.Run,
533507
o.ruleController.Run,
@@ -664,7 +638,6 @@ func (o *Operator) handleEvent(obj interface{}) {
664638
case apiAuthenticationConfigMap:
665639
case kubeletServingCAConfigMap:
666640
case metricsServerClientCerts:
667-
case telemeterCABundleConfigMap:
668641
case alertmanagerCABundleConfigMap:
669642
case grpcTLS:
670643
case metricsClientCerts:

pkg/tasks/telemeter.go

Lines changed: 2 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"context"
1919
"fmt"
2020

21-
apierrors "k8s.io/apimachinery/pkg/api/errors"
2221
"k8s.io/klog/v2"
2322

2423
"github.com/openshift/cluster-monitoring-operator/pkg/client"
@@ -40,163 +39,8 @@ func NewTelemeterClientTask(client *client.Client, factory *manifests.Factory, c
4039
}
4140

4241
func (t *TelemeterClientTask) Run(ctx context.Context) error {
43-
if t.config.ClusterMonitoringConfiguration.TelemeterClientConfig.IsEnabled() && !t.config.RemoteWrite {
44-
return t.create(ctx)
45-
}
46-
47-
var reason string
48-
switch {
49-
case !t.config.ClusterMonitoringConfiguration.TelemeterClientConfig.IsEnabled():
50-
reason = "telemetry is explicitly disabled"
51-
case t.config.ClusterMonitoringConfiguration.TelemeterClientConfig.IsEnabled() && t.config.RemoteWrite:
52-
reason = "remote-write is enabled instead"
53-
}
54-
55-
if reason != "" {
56-
klog.V(3).Infof("Telemeter client is disabled (because %s), existing related resources are to be destroyed.", reason)
57-
return t.destroy(ctx)
58-
}
59-
60-
return nil
61-
}
62-
63-
func (t *TelemeterClientTask) create(ctx context.Context) error {
64-
cacm, err := t.factory.TelemeterClientServingCertsCABundle()
65-
if err != nil {
66-
return fmt.Errorf("initializing Telemeter Client serving certs CA Bundle ConfigMap failed: %w", err)
67-
}
68-
69-
_, err = t.client.CreateIfNotExistConfigMap(ctx, cacm)
70-
if err != nil {
71-
return fmt.Errorf("creating Telemeter Client serving certs CA Bundle ConfigMap failed: %w", err)
72-
}
73-
74-
sa, err := t.factory.TelemeterClientServiceAccount()
75-
if err != nil {
76-
return fmt.Errorf("initializing Telemeter client Service failed: %w", err)
77-
}
78-
79-
err = t.client.CreateOrUpdateServiceAccount(ctx, sa)
80-
if err != nil {
81-
return fmt.Errorf("reconciling Telemeter client ServiceAccount failed: %w", err)
82-
}
83-
84-
cr, err := t.factory.TelemeterClientClusterRole()
85-
if err != nil {
86-
return fmt.Errorf("initializing Telemeter client ClusterRole failed: %w", err)
87-
}
88-
89-
err = t.client.CreateOrUpdateClusterRole(ctx, cr)
90-
if err != nil {
91-
return fmt.Errorf("reconciling Telemeter client ClusterRole failed: %w", err)
92-
}
93-
94-
crb, err := t.factory.TelemeterClientClusterRoleBinding()
95-
if err != nil {
96-
return fmt.Errorf("initializing Telemeter client ClusterRoleBinding failed: %w", err)
97-
}
98-
99-
err = t.client.CreateOrUpdateClusterRoleBinding(ctx, crb)
100-
if err != nil {
101-
return fmt.Errorf("reconciling Telemeter client ClusterRoleBinding failed: %w", err)
102-
}
103-
104-
crb, err = t.factory.TelemeterClientClusterRoleBindingView()
105-
if err != nil {
106-
return fmt.Errorf("initializing Telemeter client cluster monitoring view ClusterRoleBinding failed: %w", err)
107-
}
108-
109-
err = t.client.CreateOrUpdateClusterRoleBinding(ctx, crb)
110-
if err != nil {
111-
return fmt.Errorf("reconciling Telemeter client cluster monitoring view ClusterRoleBinding failed: %w", err)
112-
}
113-
114-
svc, err := t.factory.TelemeterClientService()
115-
if err != nil {
116-
return fmt.Errorf("initializing Telemeter client Service failed: %w", err)
117-
}
118-
119-
err = t.client.CreateOrUpdateService(ctx, svc)
120-
if err != nil {
121-
return fmt.Errorf("reconciling Telemeter client Service failed: %w", err)
122-
}
123-
124-
s, err := t.factory.TelemeterClientSecret()
125-
if err != nil {
126-
return fmt.Errorf("initializing Telemeter client Secret failed: %w", err)
127-
}
128-
129-
oldS, err := t.client.GetSecret(ctx, s.Namespace, s.Name)
130-
if err != nil && !apierrors.IsNotFound(err) {
131-
return fmt.Errorf("getting Telemeter Client Secret failed: %w", err)
132-
}
133-
if oldS != nil && string(oldS.Data["token"]) == t.config.ClusterMonitoringConfiguration.TelemeterClientConfig.Token {
134-
s.Data = oldS.Data
135-
}
136-
137-
err = t.client.CreateOrUpdateSecret(ctx, s)
138-
if err != nil {
139-
return fmt.Errorf("reconciling Telemeter client Secret failed: %w", err)
140-
}
141-
142-
krs, err := t.factory.TelemeterClientKubeRbacProxySecret()
143-
if err != nil {
144-
return fmt.Errorf("initializing Telemeter client kube rbac proxy secret failed: %w", err)
145-
}
146-
147-
err = t.client.CreateOrUpdateSecret(ctx, krs)
148-
if err != nil {
149-
return fmt.Errorf("reconciling Telemeter client kube rbac proxy secret failed: %w", err)
150-
}
151-
152-
{
153-
// Create trusted CA bundle ConfigMap.
154-
trustedCA, err := t.factory.TelemeterTrustedCABundle()
155-
if err != nil {
156-
return fmt.Errorf("initializing Telemeter client trusted CA bundle ConfigMap failed: %w", err)
157-
}
158-
159-
cbs := &caBundleSyncer{
160-
client: t.client,
161-
factory: t.factory,
162-
prefix: "telemeter",
163-
}
164-
trustedCA, err = cbs.syncTrustedCABundle(ctx, trustedCA)
165-
if err != nil {
166-
return fmt.Errorf("syncing Telemeter client CA bundle ConfigMap failed: %w", err)
167-
}
168-
169-
dep, err := t.factory.TelemeterClientDeployment(trustedCA, s)
170-
if err != nil {
171-
return fmt.Errorf("initializing Telemeter client Deployment failed: %w", err)
172-
}
173-
174-
err = t.client.CreateOrUpdateDeployment(ctx, dep)
175-
if err != nil {
176-
return fmt.Errorf("reconciling Telemeter client Deployment failed: %w", err)
177-
}
178-
}
179-
180-
rule, err := t.factory.TelemeterClientPrometheusRule()
181-
if err != nil {
182-
return fmt.Errorf("initializing Telemeter client Prometheus Rule failed: %w", err)
183-
}
184-
185-
err = t.client.CreateOrUpdatePrometheusRule(ctx, rule)
186-
if err != nil {
187-
return fmt.Errorf("reconciling Telemeter client Prometheus Rule failed: %w", err)
188-
}
189-
190-
sm, err := t.factory.TelemeterClientServiceMonitor()
191-
if err != nil {
192-
return fmt.Errorf("initializing Telemeter client ServiceMonitor failed: %w", err)
193-
}
194-
195-
err = t.client.CreateOrUpdateServiceMonitor(ctx, sm)
196-
if err != nil {
197-
return fmt.Errorf("reconciling Telemeter client ServiceMonitor failed: %w", err)
198-
}
199-
return nil
42+
klog.V(3).Infof("Telemeter client is deprecated and no longer used, existing related resources are to be destroyed.")
43+
return t.destroy(ctx)
20044
}
20145

20246
func (t *TelemeterClientTask) destroy(ctx context.Context) error {

test/e2e/config_test.go

Lines changed: 0 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -427,83 +427,6 @@ func TestClusterMonitorOSMConfig(t *testing.T) {
427427
}
428428
}
429429

430-
func TestClusterMonitorTelemeterClientConfig(t *testing.T) {
431-
const (
432-
deploymentName = "telemeter-client"
433-
)
434-
435-
data := `telemeterClient:
436-
tolerations:
437-
- operator: "Exists"
438-
`
439-
f.MustCreateOrUpdateConfigMap(t, f.BuildCMOConfigMap(t, data))
440-
441-
for _, tc := range []scenario{
442-
{
443-
name: "test the telemeter-client deployment is rolled out",
444-
assertion: f.AssertDeploymentExistsAndRollout(deploymentName, f.Ns),
445-
},
446-
{
447-
name: "assert pod configuration is as expected",
448-
assertion: f.AssertPodConfiguration(
449-
f.Ns,
450-
"app.kubernetes.io/name=telemeter-client",
451-
[]framework.PodAssertion{
452-
expectCatchAllToleration(),
453-
},
454-
),
455-
},
456-
} {
457-
if ok := t.Run(tc.name, tc.assertion); !ok {
458-
t.Fatalf("scenario %q failed", tc.name)
459-
}
460-
}
461-
}
462-
463-
func TestTelemeterClientSecret(t *testing.T) {
464-
for _, tc := range []struct {
465-
name string
466-
oldC string
467-
newC string
468-
tokenChanged bool
469-
}{
470-
{
471-
name: "Existing Secret",
472-
oldC: `telemeterClient:
473-
token: mySecretToken
474-
`,
475-
newC: `telemeterClient:
476-
token: mySecretToken
477-
`,
478-
tokenChanged: false,
479-
},
480-
{
481-
name: "Existing Secret, new token",
482-
oldC: `telemeterClient:
483-
token: mySecretToken
484-
`,
485-
newC: `telemeterClient:
486-
token: myNewSecretToken
487-
`,
488-
tokenChanged: true,
489-
},
490-
} {
491-
492-
t.Run(tc.name, func(t *testing.T) {
493-
f.MustCreateOrUpdateConfigMap(t, f.BuildCMOConfigMap(t, tc.oldC))
494-
oldS := f.MustGetSecret(t, "telemeter-client", f.Ns)
495-
f.MustCreateOrUpdateConfigMap(t, f.BuildCMOConfigMap(t, tc.newC))
496-
if tc.tokenChanged {
497-
f.AssertValueInSecretNotEquals(oldS.GetName(), oldS.GetNamespace(), "token", string(oldS.Data["token"]))
498-
f.AssertValueInSecretNotEquals(oldS.GetName(), oldS.GetNamespace(), "salt", string(oldS.Data["salt"]))
499-
return
500-
}
501-
f.AssertValueInSecretEquals(oldS.GetName(), oldS.GetNamespace(), "token", string(oldS.Data["token"]))
502-
f.AssertValueInSecretEquals(oldS.GetName(), oldS.GetNamespace(), "salt", string(oldS.Data["salt"]))
503-
})
504-
}
505-
}
506-
507430
func TestClusterMonitorThanosQuerierConfig(t *testing.T) {
508431
const (
509432
deploymentName = "thanos-querier"

test/e2e/main_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,6 @@ func testTargetsUp(t *testing.T) {
165165
"alertmanager-main",
166166
"cluster-monitoring-operator",
167167
"openshift-state-metrics",
168-
"telemeter-client",
169168
"thanos-querier",
170169
}
171170

test/e2e/prometheus_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestPrometheusMetrics(t *testing.T) {
3939
"alertmanager-main": 2,
4040
"kube-state-metrics": 2, // one for the kube metrics + one for the metrics of the process itself.
4141
"openshift-state-metrics": 2, // ditto.
42-
"telemeter-client": 1,
42+
"telemeter-client": 0,
4343
}
4444

4545
for service, metric := range expected {

0 commit comments

Comments
 (0)