Skip to content

Commit fd47c94

Browse files
authored
fix: Target Down for metrics monitor (redhat-developer#1195)
* fix: Target Down for metrics monitor Signed-off-by: akhil nittala <nakhil@redhat.com> * fix: Target Down for metrics monitor Signed-off-by: akhil nittala <nakhil@redhat.com> * fix: Target Down for metrics monitor Signed-off-by: akhil nittala <nakhil@redhat.com> --------- Signed-off-by: akhil nittala <nakhil@redhat.com>
1 parent 93a8216 commit fd47c94

6 files changed

Lines changed: 43 additions & 12 deletions

File tree

bundle/manifests/gitops-operator.clusterserviceversion.yaml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ metadata:
190190
capabilities: Deep Insights
191191
console.openshift.io/plugins: '["gitops-plugin"]'
192192
containerImage: quay.io/redhat-developer/gitops-operator
193-
createdAt: "2026-06-16T17:25:03Z"
193+
createdAt: "2026-06-30T06:15:57Z"
194194
description: Enables teams to adopt GitOps principles for managing cluster configurations
195195
and application delivery across hybrid multi-cluster Kubernetes environments.
196196
features.operators.openshift.io/disconnected: "true"
@@ -864,6 +864,7 @@ spec:
864864
- --health-probe-bind-address=:8081
865865
- --metrics-bind-address=:8443
866866
- --leader-elect
867+
- --metrics-secure=true
867868
command:
868869
- /usr/local/bin/manager
869870
env:
@@ -910,10 +911,18 @@ spec:
910911
- ALL
911912
readOnlyRootFilesystem: true
912913
runAsNonRoot: true
914+
volumeMounts:
915+
- mountPath: /tmp/k8s-metrics-server/serving-certs
916+
name: metrics-certs
917+
readOnly: true
913918
securityContext:
914919
runAsNonRoot: true
915920
serviceAccountName: openshift-gitops-operator-controller-manager
916921
terminationGracePeriodSeconds: 10
922+
volumes:
923+
- name: metrics-certs
924+
secret:
925+
secretName: openshift-gitops-operator-metrics-tls
917926
permissions:
918927
- rules:
919928
- apiGroups:

bundle/manifests/openshift-gitops-operator-metrics-service_v1_service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v1
22
kind: Service
33
metadata:
44
annotations:
5-
service.beta.openshift.io/serving-cert-secret-name: kube-rbac-proxy-tls
5+
service.beta.openshift.io/serving-cert-secret-name: openshift-gitops-operator-metrics-tls
66
creationTimestamp: null
77
labels:
88
control-plane: gitops-operator

cmd/main.go

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ func main() {
9393
var metricsAddr string
9494
var enableLeaderElection bool
9595
var probeAddr string
96-
96+
var secureMetrics = false
9797
var enableHTTP2 = false
9898
var skipControllerNameValidation = true
9999
var disableClusterTLSProfile = false
@@ -107,6 +107,8 @@ func main() {
107107
"Enabling this will ensure there is only one active controller manager.")
108108
flag.BoolVar(&enableHTTP2, "enable-http2", enableHTTP2, "If HTTP/2 should be enabled for the metrics and webhook servers.")
109109
flag.BoolVar(&disableClusterTLSProfile, "disable-cluster-tls-profile", false, "Disable use of the cluster TLS security profile")
110+
flag.BoolVar(&secureMetrics, "metrics-secure", secureMetrics, "If the metrics endpoint should be served securely.")
111+
110112
//Configure log level
111113
logLevelStr := strings.ToLower(os.Getenv("LOG_LEVEL"))
112114
logLevel := zapcore.InfoLevel
@@ -179,11 +181,7 @@ func main() {
179181
}
180182
webhookServer := webhook.NewServer(webhookServerOptions)
181183

182-
metricsServerOptions := metricsserver.Options{
183-
BindAddress: metricsAddr,
184-
TLSOpts: tlsOpts,
185-
FilterProvider: filters.WithAuthenticationAndAuthorization,
186-
}
184+
metricsServerOptions := buildMetricsServerOptions(metricsAddr, secureMetrics, tlsOpts)
187185

188186
// Set default manager options
189187
options := ctrl.Options{
@@ -472,3 +470,18 @@ func initK8sClient() (*kubernetes.Clientset, error) {
472470

473471
return k8sClient, nil
474472
}
473+
474+
func buildMetricsServerOptions(metricsAddr string, secureMetrics bool, tlsOpts []func(*tls.Config)) metricsserver.Options {
475+
opts := metricsserver.Options{
476+
SecureServing: secureMetrics,
477+
BindAddress: metricsAddr,
478+
TLSOpts: tlsOpts,
479+
}
480+
481+
if secureMetrics {
482+
opts.FilterProvider = filters.WithAuthenticationAndAuthorization
483+
opts.CertDir = "/tmp/k8s-metrics-server/serving-certs"
484+
}
485+
486+
return opts
487+
}

config/default/manager_metrics_patch.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ spec:
1515
- "--health-probe-bind-address=:8081"
1616
- "--metrics-bind-address=:8443"
1717
- "--leader-elect"
18+
- "--metrics-secure=true"
1819
ports:
1920
- name: metrics
2021
containerPort: 8443

config/manager/manager.yaml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ spec:
2727
securityContext:
2828
runAsNonRoot: true
2929
containers:
30-
- command:
30+
- name: manager
31+
command:
3132
- /usr/local/bin/manager
3233
env:
3334
- name: ARGOCD_CLUSTER_CONFIG_NAMESPACES
@@ -47,7 +48,6 @@ spec:
4748
port: 8081
4849
initialDelaySeconds: 15
4950
periodSeconds: 20
50-
name: manager
5151
readinessProbe:
5252
httpGet:
5353
path: /readyz
@@ -62,5 +62,13 @@ spec:
6262
- ALL
6363
readOnlyRootFilesystem: true
6464
runAsNonRoot: true
65+
volumeMounts:
66+
- name: metrics-certs
67+
mountPath: /tmp/k8s-metrics-server/serving-certs
68+
readOnly: true
69+
volumes:
70+
- name: metrics-certs
71+
secret:
72+
secretName: openshift-gitops-operator-metrics-tls
6573
serviceAccountName: controller-manager
66-
terminationGracePeriodSeconds: 10
74+
terminationGracePeriodSeconds: 10

config/rbac/metrics_service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v1
22
kind: Service
33
metadata:
44
annotations:
5-
service.beta.openshift.io/serving-cert-secret-name: kube-rbac-proxy-tls
5+
service.beta.openshift.io/serving-cert-secret-name: openshift-gitops-operator-metrics-tls
66
labels:
77
control-plane: gitops-operator
88
name: metrics-service

0 commit comments

Comments
 (0)