Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
6ffde46
USHIFT-6951: add metrics-server Kubernetes manifests
copejon Jun 5, 2026
53c5a00
USHIFT-6951: integrate metrics-server lifecycle management
copejon Jun 5, 2026
611c999
USHIFT-6951: add metrics rebase automation
copejon Jun 5, 2026
064f933
USHIFT-6951: package metrics-server RPM and observability integration
copejon Jun 5, 2026
81d7280
USHIFT-6951: fix otelcol test config for metrics drop-in compatibility
copejon Jun 6, 2026
f37e956
USHIFT-6951: unquote YAML keys in audit profiles configmap
copejon Jun 9, 2026
61b222e
USHIFT-6951: fix otelcol arg expansion and add missing release JSON e…
copejon Jun 11, 2026
ad3d127
USHIFT-6951: update rebase artifacts and de-dup assets tracker
copejon Jun 17, 2026
6e29665
USHIFT-6951: move metrics cert provisioning to pkg/components
copejon Jun 17, 2026
131595b
USHIFT-6951: fix metrics-server cert provisioning reliability
copejon Jun 17, 2026
4422f5f
USHIFT-6951: narrow kubelet serving CA bundle for metrics-server
copejon Jun 17, 2026
31d8583
USHIFT-6951: use slices.Concat in mergeWorkloads
copejon Jun 19, 2026
21a3084
USHIFT-6951: remove otel-collector integration from metrics-server
copejon Jun 19, 2026
11d0b8b
USHIFT-6951: remove metrics-server rebase logic from shared files
copejon Jun 19, 2026
725e3ff
USHIFT-6951: add standalone cluster-monitoring-operator rebase script
copejon Jun 19, 2026
cdfcf33
update last_rebase_cluster_monitoring_operator.sh
copejon Jun 19, 2026
79bfb1e
to simply merging of the components the CMO rebase script is now iden…
copejon Jun 19, 2026
483953f
executed rebase script
copejon Jun 19, 2026
4e3774e
remove errant otel-conf (out of scope), normalize assets files to KSM…
copejon Jun 22, 2026
cd8990d
update etcd vendor
copejon Jun 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions assets/optional/metrics-server/00-namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Namespace
metadata:
name: openshift-monitoring
labels:
name: openshift-monitoring
pod-security.kubernetes.io/enforce: privileged
pod-security.kubernetes.io/audit: privileged
pod-security.kubernetes.io/warn: privileged
Comment thread
copejon marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: auth-delegator
app.kubernetes.io/part-of: openshift-monitoring
name: metrics-server:system:auth-delegator
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:auth-delegator
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: openshift-monitoring
18 changes: 18 additions & 0 deletions assets/optional/metrics-server/01-cluster-role-binding.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
labels:
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
name: system:metrics-server
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:metrics-server
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: openshift-monitoring
- kind: User
name: system:metrics-server
25 changes: 25 additions & 0 deletions assets/optional/metrics-server/01-cluster-role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
name: system:metrics-server
rules:
- apiGroups:
- ""
resources:
- nodes/metrics
verbs:
- get
- apiGroups:
- ""
resources:
- pods
- nodes
verbs:
- get
- list
- watch
18 changes: 18 additions & 0 deletions assets/optional/metrics-server/01-role-binding-auth-reader.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: metrics-server-auth-reader
app.kubernetes.io/part-of: openshift-monitoring
name: metrics-server-auth-reader
namespace: kube-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
name: metrics-server
namespace: openshift-monitoring
10 changes: 10 additions & 0 deletions assets/optional/metrics-server/01-service-account.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
name: metrics-server
namespace: openshift-monitoring
45 changes: 45 additions & 0 deletions assets/optional/metrics-server/02-configmap-audit-profiles.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
apiVersion: v1
data:
metadata-profile.yaml: |-
"apiVersion": "audit.k8s.io/v1"
"kind": "Policy"
"metadata":
"name": "Metadata"
"omitStages":
- "RequestReceived"
"rules":
- "level": "Metadata"
none-profile.yaml: |-
"apiVersion": "audit.k8s.io/v1"
"kind": "Policy"
"metadata":
"name": "None"
"omitStages":
- "RequestReceived"
"rules":
- "level": "None"
request-profile.yaml: |-
"apiVersion": "audit.k8s.io/v1"
"kind": "Policy"
"metadata":
"name": "Request"
"omitStages":
- "RequestReceived"
"rules":
- "level": "Request"
requestresponse-profile.yaml: |-
"apiVersion": "audit.k8s.io/v1"
"kind": "Policy"
"metadata":
"name": "RequestResponse"
"omitStages":
- "RequestReceived"
"rules":
- "level": "RequestResponse"
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/part-of: openshift-monitoring
name: metrics-server-audit-profiles
namespace: openshift-monitoring
114 changes: 114 additions & 0 deletions assets/optional/metrics-server/03-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
name: metrics-server
namespace: openshift-monitoring
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
strategy:
type: Recreate
template:
metadata:
annotations:
openshift.io/required-scc: restricted-v2
target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}'
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
spec:
containers:
- args:
- --secure-port=10250
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
- --kubelet-certificate-authority=/etc/tls/kubelet-serving-ca-bundle/ca-bundle.crt
- --kubelet-client-certificate=/etc/tls/metrics-server-client-certs/tls.crt
- --kubelet-client-key=/etc/tls/metrics-server-client-certs/tls.key
- --tls-cert-file=/etc/tls/private/tls.crt
- --tls-private-key-file=/etc/tls/private/tls.key
- --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
- --shutdown-send-retry-after=true
- --shutdown-delay-duration=150s
- --disable-http2-serving=true
image: "quay.io/openshift/kube-metrics-server"
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /livez
port: https
scheme: HTTPS
periodSeconds: 10
name: metrics-server
ports:
- containerPort: 10250
name: https
protocol: TCP
readinessProbe:
failureThreshold: 6
httpGet:
path: /readyz
port: https
scheme: HTTPS
initialDelaySeconds: 20
periodSeconds: 20
resources:
requests:
cpu: 1m
memory: 40Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities:
drop:
- ALL
terminationMessagePolicy: FallbackToLogsOnError
volumeMounts:
- mountPath: /etc/tls/private
name: secret-metrics-server-tls
- mountPath: /etc/tls/metrics-server-client-certs
name: secret-metrics-server-client-certs
- mountPath: /etc/tls/kubelet-serving-ca-bundle
name: configmap-kubelet-serving-ca-bundle
- mountPath: /etc/audit
name: metrics-server-audit-profiles
readOnly: true
- mountPath: /var/log/metrics-server
name: audit-log
readOnly: false
nodeSelector:
kubernetes.io/os: linux
priorityClassName: system-cluster-critical
serviceAccountName: metrics-server
terminationGracePeriodSeconds: 170
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
volumes:
- name: secret-metrics-server-client-certs
secret:
secretName: metrics-server-client-certs
- name: secret-metrics-server-tls
secret:
secretName: metrics-server-tls
- configMap:
name: kubelet-serving-ca-bundle
name: configmap-kubelet-serving-ca-bundle
- emptyDir: {}
name: audit-log
- configMap:
name: metrics-server-audit-profiles
name: metrics-server-audit-profiles
21 changes: 21 additions & 0 deletions assets/optional/metrics-server/04-api-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
annotations:
service.beta.openshift.io/inject-cabundle: "true"
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
name: v1beta1.metrics.k8s.io
spec:
group: metrics.k8s.io
groupPriorityMinimum: 100
insecureSkipTLSVerify: false
service:
name: metrics-server
namespace: openshift-monitoring
port: 443
version: v1beta1
versionPriority: 100
22 changes: 22 additions & 0 deletions assets/optional/metrics-server/04-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apiVersion: v1
kind: Service
metadata:
annotations:
openshift.io/description: Expose the metrics-server web server on port 443. This port is for internal use, and no other usage is guaranteed.
service.beta.openshift.io/serving-cert-secret-name: metrics-server-tls
labels:
app.kubernetes.io/component: metrics-server
app.kubernetes.io/managed-by: cluster-monitoring-operator
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
name: metrics-server
namespace: openshift-monitoring
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: https
selector:
app.kubernetes.io/name: metrics-server
app.kubernetes.io/part-of: openshift-monitoring
4 changes: 4 additions & 0 deletions assets/optional/metrics-server/kustomization.aarch64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
images:
- name: quay.io/openshift/kube-metrics-server
newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev
digest: sha256:790dcea1d4cf5eb3a989bf3d14d460148d23a743951644668a300b7fc21f29ec
4 changes: 4 additions & 0 deletions assets/optional/metrics-server/kustomization.x86_64.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
images:
- name: quay.io/openshift/kube-metrics-server
newName: quay.io/openshift-release-dev/ocp-v5.0-art-dev
digest: sha256:0590e13d7955f71db964f601f5ce6c66416a1e2e5acee5c2831f41fb2b13435c
13 changes: 13 additions & 0 deletions assets/optional/metrics-server/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- 00-namespace.yaml
- 01-service-account.yaml
- 01-cluster-role.yaml
- 01-cluster-role-binding.yaml
- 01-cluster-role-binding-auth-delegator.yaml
- 01-role-binding-auth-reader.yaml
- 02-configmap-audit-profiles.yaml
- 03-deployment.yaml
- 04-service.yaml
- 04-api-service.yaml
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"release": {
"base": "5.0.0-0.nightly-arm64-2026-06-19-154904"
},
"images": {
"metrics_server": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:790dcea1d4cf5eb3a989bf3d14d460148d23a743951644668a300b7fc21f29ec"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"release": {
"base": "5.0.0-0.nightly-2026-06-19-155631"
},
"images": {
"metrics_server": "quay.io/openshift-release-dev/ocp-v5.0-art-dev@sha256:0590e13d7955f71db964f601f5ce6c66416a1e2e5acee5c2831f41fb2b13435c"
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading