Skip to content

Commit 53d48c1

Browse files
kubevirt-botweb-flowRamLavi
authored
bump kubemacpool to v0.50.0-18-gcf11f30 (#2591)
* bump kubemacpool to v0.50.0-18-gcf11f30 Signed-off-by: CNAO Bump Bot <noreply@github.com> * e2e/kubemacpool: Set monitoring lane env var Doing so tells CNAO to configure the monitoring components using the correct prometheus ns Signed-off-by: Ram Lavi <ralavi@redhat.com> * components/kubemacpool: Add monitoring objects Upstream kubemacpool added monitoring infrastructure [0][1][2]. - Adding the added objects, with configurable params that will be rendered on runtime by CNAO. - wrapping these objects by another param MonitoringAvailable that will be also rendered on realtime, so these objects will be deployed only then prometheus is installed on the cluster. [0] k8snetworkplumbingwg/kubemacpool#596 [1] k8snetworkplumbingwg/kubemacpool#587 [2] k8snetworkplumbingwg/kubemacpool#598 Assited-by: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Ram Lavi <ralavi@redhat.com> * components/kubemacpool: Templatize monitoring params for SA Upstream kubemacpool added monitoring infrastructure [0] with hardcoded prometheus-k8s service account and monitoring namespace in the RoleBinding subjects. For CNAO, these need to be configurable via template variables, consistent how CNAO already handles it. [0] k8snetworkplumbingwg/kubemacpool#596 Assited-by: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Ram Lavi <ralavi@redhat.com> --------- Signed-off-by: CNAO Bump Bot <noreply@github.com> Signed-off-by: Ram Lavi <ralavi@redhat.com> Co-authored-by: CNAO Bump Bot <noreply@github.com> Co-authored-by: Ram Lavi <ralavi@redhat.com>
1 parent 028b0b5 commit 53d48c1

File tree

7 files changed

+132
-5
lines changed

7 files changed

+132
-5
lines changed

automation/check-patch.e2e-kubemacpool-functests.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ main() {
2424
cd ${TMP_PROJECT_PATH}
2525

2626
export KUBEVIRT_NUM_NODES=${KUBEVIRT_NUM_NODES:-3}
27+
export MONITORING_NAMESPACE="monitoring"
2728
# Spin-up ephemeral cluster with latest CNAO
2829
# this script also exports KUBECONFIG, and fetch $COMPONENT repository
2930
export CNAO_DEPLOY_KUBEVIRT=true

components.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ components:
1313
metadata: v0.0.23
1414
kubemacpool:
1515
url: https://github.com/k8snetworkplumbingwg/kubemacpool
16-
commit: 84e6a06b951c366ae17b72a374ed3db6c89c192e
16+
commit: cf11f3007a69512945ee624ef70ceb8605bf81e4
1717
branch: main
1818
update-policy: latest
19-
metadata: v0.50.0-14-g84e6a06
19+
metadata: v0.50.0-18-gcf11f30
2020
kubevirt-ipam-controller:
2121
url: https://github.com/kubevirt/ipam-extensions
2222
commit: edebfda455fcc6316e690c22c5d6fa48f403d594
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
{{ if .MonitoringAvailable }}
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: Role
4+
metadata:
5+
name: kubemacpool-prometheus
6+
namespace: '{{ .Namespace }}'
7+
rules:
8+
- apiGroups:
9+
- ""
10+
resources:
11+
- services
12+
- endpoints
13+
- pods
14+
verbs:
15+
- get
16+
- list
17+
- watch
18+
---
19+
apiVersion: rbac.authorization.k8s.io/v1
20+
kind: RoleBinding
21+
metadata:
22+
name: kubemacpool-prometheus
23+
namespace: '{{ .Namespace }}'
24+
roleRef:
25+
apiGroup: rbac.authorization.k8s.io
26+
kind: Role
27+
name: kubemacpool-prometheus
28+
subjects:
29+
- kind: ServiceAccount
30+
name: '{{ .MonitoringServiceAccount }}'
31+
namespace: '{{ .MonitoringNamespace }}'
32+
---
33+
apiVersion: v1
34+
kind: Service
35+
metadata:
36+
labels:
37+
control-plane: mac-controller-manager
38+
prometheus.kubemacpool.io: "true"
39+
name: kubemacpool-metrics-service
40+
namespace: '{{ .Namespace }}'
41+
spec:
42+
ports:
43+
- name: metrics
44+
port: 8443
45+
protocol: TCP
46+
targetPort: 8443
47+
selector:
48+
control-plane: mac-controller-manager
49+
---
50+
apiVersion: monitoring.coreos.com/v1
51+
kind: PrometheusRule
52+
metadata:
53+
labels:
54+
openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus
55+
prometheus.kubemacpool.io: "true"
56+
name: kubemacpool-prometheus-rule
57+
namespace: '{{ .Namespace }}'
58+
spec:
59+
groups:
60+
- name: alerts.rules
61+
rules:
62+
- alert: KubemacpoolMACCollisionDetected
63+
annotations:
64+
description: '{{ "{{" }} $value {{ "}}" }} MAC address(es) have collisions. Multiple running
65+
objects are using the same MAC address.'
66+
summary: MAC address collisions detected.
67+
expr: count(kmp_mac_collisions > 1) > 0
68+
for: 30s
69+
labels:
70+
operator_health_impact: warning
71+
severity: warning
72+
---
73+
apiVersion: monitoring.coreos.com/v1
74+
kind: ServiceMonitor
75+
metadata:
76+
labels:
77+
openshift.io/cluster-monitoring: "true"
78+
prometheus.kubemacpool.io: "true"
79+
name: kubemacpool-metrics-monitor
80+
namespace: '{{ .Namespace }}'
81+
spec:
82+
endpoints:
83+
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
84+
port: metrics
85+
scheme: https
86+
tlsConfig:
87+
insecureSkipVerify: true
88+
selector:
89+
matchLabels:
90+
control-plane: mac-controller-manager
91+
{{ end }}

hack/components/bump-kubemacpool.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ echo 'Configure kustomize for CNAO templates and save the rendered manifest unde
2222
(
2323
cd ${KUBEMACPOOL_PATH}
2424
mkdir -p config/cnao
25+
mkdir -p config/cnao-monitoring
2526

2627
cat <<EOF > config/cnao/kustomization.yaml
2728
apiVersion: kustomize.config.k8s.io/v1beta1
@@ -65,6 +66,14 @@ patches:
6566
kind: Deployment
6667
EOF
6768

69+
cat <<EOF > config/cnao-monitoring/kustomization.yaml
70+
apiVersion: kustomize.config.k8s.io/v1beta1
71+
kind: Kustomization
72+
namespace: "{{ .Namespace }}"
73+
bases:
74+
- ../monitoring
75+
EOF
76+
6877
cat <<EOF > config/cnao/cnao_kubemacpool_manager_patch.yaml
6978
apiVersion: apps/v1
7079
kind: Deployment
@@ -177,6 +186,15 @@ rm kustomize.tar.gz
177186
./kustomize build config/cnao | sed "s/'{{ toYaml \(.*\)}}'/{{ toYaml \1}}/;s/'{{ .RunAsNonRoot }}'/{{ .RunAsNonRoot }}/g;s/'{{ .RunAsUser }}'/{{ .RunAsUser }}/g"
178187
) > data/kubemacpool/kubemacpool.yaml
179188

189+
(
190+
cd $KUBEMACPOOL_PATH
191+
echo '{{ if .MonitoringAvailable }}'
192+
./kustomize build config/cnao-monitoring | sed "s/'{{ toYaml \(.*\)}}'/{{ toYaml \1}}/;s/'{{ .RunAsNonRoot }}'/{{ .RunAsNonRoot }}/g;s/'{{ .RunAsUser }}'/{{ .RunAsUser }}/g" \
193+
| sed "s/ name: prometheus-k8s$/ name: '{{ .MonitoringServiceAccount }}'/;s/ namespace: monitoring$/ namespace: '{{ .MonitoringNamespace }}'/" \
194+
| sed 's/{{ \$value }}/{{ "{{" }} \$value {{ "}}" }}/g'
195+
echo '{{ end }}'
196+
) > data/kubemacpool/kubemacpool-monitoring.yaml
197+
180198
echo 'Get kubemacpool image name and update it under CNAO'
181199
KUBEMACPOOL_TAG=$(git-utils::get_component_tag ${KUBEMACPOOL_PATH})
182200
KUBEMACPOOL_IMAGE=quay.io/kubevirt/kubemacpool

pkg/components/components.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const (
3636
MultusDynamicNetworksImageDefault = "ghcr.io/k8snetworkplumbingwg/multus-dynamic-networks-controller@sha256:2a2bb32c0ea8b232b3dbe81c0323a107e8b05f8cad06704fca2efd0d993a87be"
3737
LinuxBridgeCniImageDefault = "quay.io/kubevirt/cni-default-plugins@sha256:976a24392c2a096c38c2663d234b2d3131f5c24558889196d30b9ac1b6716788"
3838
LinuxBridgeMarkerImageDefault = "quay.io/kubevirt/bridge-marker@sha256:f9611ec10bb4aec44b0ec19f9b9d748a36255c089a1f59bc76e5fc37acc0fed2"
39-
KubeMacPoolImageDefault = "quay.io/kubevirt/kubemacpool@sha256:d1af879c0f2697118a829feab05b17d0ada816e9b55a70bb558d45ec03fb321d"
39+
KubeMacPoolImageDefault = "quay.io/kubevirt/kubemacpool@sha256:fbab0c16fa92aa60d5fe664c6c53763bd04c5667e7c58fcb59d938b5541eed8f"
4040
OvsCniImageDefault = "ghcr.io/k8snetworkplumbingwg/ovs-cni-plugin@sha256:435f374b434b3bc70a5cfaba0011fdcf5f433d96b98b06d29306cbd8db3a8c21"
4141
MacvtapCniImageDefault = "quay.io/kubevirt/macvtap-cni@sha256:5266955a654a4cb4e425424ab274cf31e7a6deb3f340e3679a11d689bfa734d0"
4242
KubeRbacProxyImageDefault = "quay.io/brancz/kube-rbac-proxy@sha256:e6a323504999b2a4d2a6bf94f8580a050378eba0900fd31335cf9df5787d9a9b"

pkg/network/kubemacpool.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ func renderKubeMacPool(conf *cnao.NetworkAddonsConfigSpec, manifestDir string, c
101101
data.Data["Namespace"] = os.Getenv("OPERAND_NAMESPACE")
102102
data.Data["KubeMacPoolImage"] = os.Getenv("KUBEMACPOOL_IMAGE")
103103
data.Data["KubeRbacProxyImage"] = os.Getenv("KUBE_RBAC_PROXY_IMAGE")
104+
data.Data["MonitoringAvailable"] = clusterInfo.MonitoringAvailable
105+
data.Data["MonitoringNamespace"] = monitoringNamespace()
106+
data.Data["MonitoringServiceAccount"] = monitoringServiceAccount()
104107
data.Data["ImagePullPolicy"] = conf.ImagePullPolicy
105108
data.Data["RangeStart"] = conf.KubeMacPool.RangeStart
106109
data.Data["RangeEnd"] = conf.KubeMacPool.RangeEnd
@@ -130,6 +133,20 @@ func renderKubeMacPool(conf *cnao.NetworkAddonsConfigSpec, manifestDir string, c
130133
return objs, nil
131134
}
132135

136+
func monitoringNamespace() string {
137+
if ns := os.Getenv("MONITORING_NAMESPACE"); ns != "" {
138+
return ns
139+
}
140+
return "monitoring"
141+
}
142+
143+
func monitoringServiceAccount() string {
144+
if sa := os.Getenv("MONITORING_SERVICE_ACCOUNT"); sa != "" {
145+
return sa
146+
}
147+
return "prometheus-k8s"
148+
}
149+
133150
func generateRandomMacPrefix() ([]byte, error) {
134151
suffix := make([]byte, 2)
135152
_, err := rand.Read(suffix)

test/releases/99.0.0.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func init() {
4242
ParentName: "kubemacpool-mac-controller-manager",
4343
ParentKind: "Deployment",
4444
Name: "manager",
45-
Image: "quay.io/kubevirt/kubemacpool@sha256:d1af879c0f2697118a829feab05b17d0ada816e9b55a70bb558d45ec03fb321d",
45+
Image: "quay.io/kubevirt/kubemacpool@sha256:fbab0c16fa92aa60d5fe664c6c53763bd04c5667e7c58fcb59d938b5541eed8f",
4646
},
4747
{
4848
ParentName: "kubemacpool-mac-controller-manager",
@@ -54,7 +54,7 @@ func init() {
5454
ParentName: "kubemacpool-cert-manager",
5555
ParentKind: "Deployment",
5656
Name: "manager",
57-
Image: "quay.io/kubevirt/kubemacpool@sha256:d1af879c0f2697118a829feab05b17d0ada816e9b55a70bb558d45ec03fb321d",
57+
Image: "quay.io/kubevirt/kubemacpool@sha256:fbab0c16fa92aa60d5fe664c6c53763bd04c5667e7c58fcb59d938b5541eed8f",
5858
},
5959
{
6060
ParentName: "ovs-cni-amd64",

0 commit comments

Comments
 (0)