Skip to content

Commit 9422ce2

Browse files
authored
Merge branch 'main' into bundle-docs
Signed-off-by: Michal Vavrinec <[email protected]>
2 parents 31f559d + b4ebad4 commit 9422ce2

File tree

28 files changed

+652
-110
lines changed

28 files changed

+652
-110
lines changed

.github/workflows/release-bumper.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
if [[ ${{ github.event_name }} == "workflow_dispatch" && ${{ github.ref }} != "refs/heads/main" ]]; then
2929
matrix="[{\"branch\": \"${GITHUB_REF#refs/heads/}\"}]"
3030
else
31-
matrix=$(git for-each-ref --format='%(refname:short)' refs/remotes/origin | grep -e "origin/main" -e "origin/release-1.[0-9]\+$" | grep -v "release-1\.[0,1,2,3]$" | sed -r 's/origin\/(.*)/{"branch": "\1"}/g' | jq -s)
31+
matrix=$(git for-each-ref --format='%(refname:short)' refs/remotes/origin | grep -e "origin/release-1.[0-9]\+$" | sort -V -r | head -3 | sed -r 's/origin\/(.*)/{"branch": "\1"}/g' | jq -s '. += [{"branch": "main"}] | sort')
3232
fi
3333
echo "matrix={\"branches\":$(echo $matrix)}" >> $GITHUB_OUTPUT
3434

cluster/kubevirtci_tag.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2510161106-883f7295
1+
2510221501-672dc39a

controllers/alerts/secret.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func (r *SecretReconciler) UpdateExistingResource(ctx context.Context, cl client
9292

9393
// Check if the secret has the correct token
9494
if string(found.Data["token"]) == token {
95-
return nil, false, nil
95+
return found, false, nil
9696
}
9797

9898
// If the token is incorrect, delete the old secret and create a new one

controllers/descheduler/descheduler_controller.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,13 +101,9 @@ func (r *ReconcileDescheduler) isDeschedulerMisconfigured(ctx context.Context) (
101101
return false, err
102102
}
103103

104-
// TODO: modify this once deschedulerv1.RelieveAndMigrate will graduate, loosing
105-
// the "Dev" prefix, and will be "KubeVirtRelieveAndMigrate", then we will need
106-
// to change it to:
107-
// misconfiguredDescheduler = slices.Contains(instance.Spec.Profiles, deschedulerv1.RelieveAndMigrate)
108104
return !slices.ContainsFunc(instance.Spec.Profiles, func(profile deschedulerv1.DeschedulerProfile) bool {
109105
switch profile {
110-
case deschedulerv1.RelieveAndMigrate, "KubeVirtRelieveAndMigrate":
106+
case deschedulerv1.KubeVirtRelieveAndMigrate, deschedulerv1.DevKubeVirtRelieveAndMigrate, deschedulerv1.LifecycleAndUtilization:
111107
return true
112108
}
113109
return false

controllers/descheduler/descheduler_controller_test.go

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ var _ = Describe("DeschedulerController", func() {
9191
},
9292
BeTrue(),
9393
),
94-
Entry("should set the metric to false for the KubeDescheduler with a valid configuration",
94+
Entry("should set the metric to false for the KubeDescheduler with a valid configuration - LifecycleAndUtilization",
9595
[]client.Object{
9696
&deschedulerv1.KubeDescheduler{
9797
ObjectMeta: metav1.ObjectMeta{
@@ -100,7 +100,23 @@ var _ = Describe("DeschedulerController", func() {
100100
},
101101
Spec: deschedulerv1.KubeDeschedulerSpec{
102102
Profiles: []deschedulerv1.DeschedulerProfile{
103-
deschedulerv1.RelieveAndMigrate,
103+
deschedulerv1.LifecycleAndUtilization,
104+
},
105+
},
106+
},
107+
},
108+
BeFalse(),
109+
),
110+
Entry("should set the metric to false for the KubeDescheduler with a valid configuration - DevKubeVirtRelieveAndMigrate",
111+
[]client.Object{
112+
&deschedulerv1.KubeDescheduler{
113+
ObjectMeta: metav1.ObjectMeta{
114+
Name: hcoutil.DeschedulerCRName,
115+
Namespace: hcoutil.DeschedulerNamespace,
116+
},
117+
Spec: deschedulerv1.KubeDeschedulerSpec{
118+
Profiles: []deschedulerv1.DeschedulerProfile{
119+
deschedulerv1.DevKubeVirtRelieveAndMigrate,
104120
},
105121
ProfileCustomizations: &deschedulerv1.ProfileCustomizations{
106122
DevDeviationThresholds: &deschedulerv1.AsymmetricLowDeviationThreshold,
@@ -112,6 +128,22 @@ var _ = Describe("DeschedulerController", func() {
112128
},
113129
BeFalse(),
114130
),
131+
Entry("should set the metric to false for the KubeDescheduler with a valid configuration - KubeVirtRelieveAndMigrate",
132+
[]client.Object{
133+
&deschedulerv1.KubeDescheduler{
134+
ObjectMeta: metav1.ObjectMeta{
135+
Name: hcoutil.DeschedulerCRName,
136+
Namespace: hcoutil.DeschedulerNamespace,
137+
},
138+
Spec: deschedulerv1.KubeDeschedulerSpec{
139+
Profiles: []deschedulerv1.DeschedulerProfile{
140+
deschedulerv1.KubeVirtRelieveAndMigrate,
141+
},
142+
},
143+
},
144+
},
145+
BeFalse(),
146+
),
115147
)
116148
})
117149
})

controllers/hyperconverged/hyperconverged_controller.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -968,7 +968,7 @@ func (r *ReconcileHyperConverged) updateConditions(req *common.HcoRequest) {
968968
req.StatusDirty = true
969969
}
970970

971-
systemHealthStatus := r.getSystemHealthStatus(req.Conditions)
971+
systemHealthStatus := r.getSystemHealthStatus(req)
972972

973973
if systemHealthStatus != req.Instance.Status.SystemHealthStatus {
974974
req.Instance.Status.SystemHealthStatus = systemHealthStatus
@@ -1030,24 +1030,34 @@ func (r *ReconcileHyperConverged) detectTaintedConfiguration(req *common.HcoRequ
10301030
}
10311031
}
10321032

1033-
func (r *ReconcileHyperConverged) getSystemHealthStatus(conditions common.HcoConditions) string {
1034-
if isSystemHealthStatusError(conditions) {
1033+
func (r *ReconcileHyperConverged) getSystemHealthStatus(req *common.HcoRequest) string {
1034+
if isSystemHealthStatusError(req) {
10351035
return systemHealthStatusError
10361036
}
10371037

1038-
if isSystemHealthStatusWarning(conditions) {
1038+
if isSystemHealthStatusWarning(req) {
10391039
return systemHealthStatusWarning
10401040
}
10411041

10421042
return systemHealthStatusHealthy
10431043
}
10441044

1045-
func isSystemHealthStatusError(conditions common.HcoConditions) bool {
1046-
return !conditions.IsStatusConditionTrue(hcov1beta1.ConditionAvailable) || conditions.IsStatusConditionTrue(hcov1beta1.ConditionDegraded)
1045+
func isSystemHealthStatusError(req *common.HcoRequest) bool {
1046+
// During upgrade, only Degraded=True is an error. Temporary Available=false is expected.
1047+
if req.UpgradeMode {
1048+
return req.Conditions.IsStatusConditionTrue(hcov1beta1.ConditionDegraded)
1049+
}
1050+
1051+
return !req.Conditions.IsStatusConditionTrue(hcov1beta1.ConditionAvailable) || req.Conditions.IsStatusConditionTrue(hcov1beta1.ConditionDegraded)
10471052
}
10481053

1049-
func isSystemHealthStatusWarning(conditions common.HcoConditions) bool {
1050-
return !conditions.IsStatusConditionTrue(hcov1beta1.ConditionReconcileComplete) || conditions.IsStatusConditionTrue(hcov1beta1.ConditionProgressing)
1054+
func isSystemHealthStatusWarning(req *common.HcoRequest) bool {
1055+
// During upgrade, treat health as non-warning while progressing; wait for reconcile complete.
1056+
if req.UpgradeMode {
1057+
return !req.Conditions.IsStatusConditionTrue(hcov1beta1.ConditionReconcileComplete)
1058+
}
1059+
1060+
return !req.Conditions.IsStatusConditionTrue(hcov1beta1.ConditionReconcileComplete) || req.Conditions.IsStatusConditionTrue(hcov1beta1.ConditionProgressing)
10511061
}
10521062

10531063
func getNumOfChangesJSONPatch(jsonPatch string) int {

controllers/hyperconverged/hyperconverged_controller_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1648,6 +1648,9 @@ var _ = Describe("HyperconvergedController", func() {
16481648
Expect(cond.Reason).To(Equal("HCOUpgrading"))
16491649
Expect(cond.Message).To(Equal("HCO is now upgrading to version " + newHCOVersion))
16501650

1651+
// system health should remain healthy during upgrade progression
1652+
verifySystemHealthStatusHealthy(foundResource)
1653+
16511654
// check that the upgrade is not done if the not all the versions are match.
16521655
// Conditions are valid
16531656
makeComponentReady()
@@ -1667,6 +1670,9 @@ var _ = Describe("HyperconvergedController", func() {
16671670
Expect(cond.Reason).To(Equal("HCOUpgrading"))
16681671
Expect(cond.Message).To(Equal("HCO is now upgrading to version " + newHCOVersion))
16691672

1673+
// system health should remain healthy during upgrade progression
1674+
verifySystemHealthStatusHealthy(foundResource)
1675+
16701676
// now, complete the upgrade
16711677
updateComponentVersion()
16721678

deploy/images.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ NETWORK_PASST_BINDING_CNI_IMAGE,quay.io/kubevirt/network-passt-binding-cni,KUBEV
1313
KUBEVIRT_PR_HELPER,quay.io/kubevirt/pr-helper,KUBEVIRT_VERSION,5b2c14125c50609141756125a2008f3ee5eec0f7ad55e55a7c42e2b99130b920
1414
KUBEVIRT_SIDECAR_SHIM,quay.io/kubevirt/sidecar-shim,KUBEVIRT_VERSION,40efe54013908a136396a13c7c35ecf17efa3ccf7a086a4faaeab490898e1d6c
1515
KUBEVIRT_SYNC_CONTROLLER_IMAGE,quay.io/kubevirt/virt-synchronization-controller,KUBEVIRT_VERSION,80fe77f0a2a2f5b579f16aed8c1869aee77cec1ad3410998e3252aaca7032ead
16-
CNA_OPERATOR_IMAGE,quay.io/kubevirt/cluster-network-addons-operator,NETWORK_ADDONS_VERSION,0ec8c28176c12c2078ef34905c72da3031a9af51f76d4c2d23e22f75e9e1dbee
16+
CNA_OPERATOR_IMAGE,quay.io/kubevirt/cluster-network-addons-operator,NETWORK_ADDONS_VERSION,088f694943fee574ef92b65d0ed62fd0799fb67023b6368259663236da76a6b5
1717
SSP_OPERATOR_IMAGE,quay.io/kubevirt/ssp-operator,SSP_VERSION,7a8d04480403bcbbdd5cd854701013bfe57a4d7ae57aad6e9c83aae331e91bfa
1818
SSP_VALIDATOR_IMAGE,quay.io/kubevirt/kubevirt-template-validator,SSP_VERSION,87350bb8e68683509b8ffa72738ad719b22f48192b88bc58ab6223980c4ccee9
1919
CDI_OPERATOR_IMAGE,quay.io/kubevirt/cdi-operator,CDI_VERSION,8b2028dc3695d1e3ec4b5d3ad0fff4e356f6e22f0c407cc70e5c551a55afaf47

deploy/index-image/community-kubevirt-hyperconverged/1.17.0/manifests/kubevirt-hyperconverged-operator.v1.17.0.clusterserviceversion.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3184,7 +3184,7 @@ spec:
31843184
- name: CDI_VERSION
31853185
value: v1.63.1
31863186
- name: NETWORK_ADDONS_VERSION
3187-
value: v0.100.2
3187+
value: v0.101.0-rc-0
31883188
- name: SSP_VERSION
31893189
value: v0.24.1
31903190
- name: HPPO_VERSION
@@ -3430,7 +3430,7 @@ spec:
34303430
- name: OVS_CNI_IMAGE
34313431
value: ghcr.io/k8snetworkplumbingwg/ovs-cni-plugin@sha256:435f374b434b3bc70a5cfaba0011fdcf5f433d96b98b06d29306cbd8db3a8c21
34323432
- name: KUBEMACPOOL_IMAGE
3433-
value: quay.io/kubevirt/kubemacpool@sha256:f9e5151798acc03798a007eacf51bc7a579c5e5a57851836eae601cc1eaa1c30
3433+
value: quay.io/kubevirt/kubemacpool@sha256:2d72fb8d9d58e7adbd91df8da9f5db6bcb992779840e7293d321b1a9d9465ccf
34343434
- name: MACVTAP_CNI_IMAGE
34353435
value: quay.io/kubevirt/macvtap-cni@sha256:af31faae20c0128a469dd4c1aa866d6bf78d1d2f5972127adf4c9438dcde10f4
34363436
- name: KUBE_RBAC_PROXY_IMAGE
@@ -3440,13 +3440,13 @@ spec:
34403440
- name: CORE_DNS_IMAGE
34413441
value: registry.k8s.io/coredns/coredns@sha256:a0ead06651cf580044aeb0a0feba63591858fb2e43ade8c9dea45a6a89ae7e5e
34423442
- name: KUBEVIRT_IPAM_CONTROLLER_IMAGE
3443-
value: ghcr.io/kubevirt/ipam-controller@sha256:4fdc9c77b9e683f274a31fcb7f6dbcf765799596efd93bc37512fb860f07b02f
3443+
value: ghcr.io/kubevirt/ipam-controller@sha256:802dde86e2cd8ea3609d1d7b98c856fa4324901ae52efba421fe5ebc5bf519d4
34443444
- name: OPERATOR_IMAGE
3445-
value: quay.io/kubevirt/cluster-network-addons-operator@sha256:0ec8c28176c12c2078ef34905c72da3031a9af51f76d4c2d23e22f75e9e1dbee
3445+
value: quay.io/kubevirt/cluster-network-addons-operator@sha256:088f694943fee574ef92b65d0ed62fd0799fb67023b6368259663236da76a6b5
34463446
- name: OPERATOR_NAME
34473447
value: cluster-network-addons-operator
34483448
- name: OPERATOR_VERSION
3449-
value: v0.100.2
3449+
value: v0.101.0-rc-0
34503450
- name: OPERATOR_NAMESPACE
34513451
valueFrom:
34523452
fieldRef:
@@ -3466,7 +3466,7 @@ spec:
34663466
value: prometheus-k8s
34673467
- name: RUNBOOK_URL_TEMPLATE
34683468
value: https://kubevirt.io/monitoring/runbooks/%s
3469-
image: quay.io/kubevirt/cluster-network-addons-operator@sha256:0ec8c28176c12c2078ef34905c72da3031a9af51f76d4c2d23e22f75e9e1dbee
3469+
image: quay.io/kubevirt/cluster-network-addons-operator@sha256:088f694943fee574ef92b65d0ed62fd0799fb67023b6368259663236da76a6b5
34703470
imagePullPolicy: IfNotPresent
34713471
livenessProbe:
34723472
httpGet:
@@ -4822,7 +4822,7 @@ spec:
48224822
name: cdi-uploadproxy
48234823
- image: quay.io/kubevirt/cdi-uploadserver@sha256:db3bf75d7a940e545b1a38d0bfff7fdc271cfc1d64a77609e07a5d0f2e6683ad
48244824
name: cdi-uploadserver
4825-
- image: quay.io/kubevirt/cluster-network-addons-operator@sha256:0ec8c28176c12c2078ef34905c72da3031a9af51f76d4c2d23e22f75e9e1dbee
4825+
- image: quay.io/kubevirt/cluster-network-addons-operator@sha256:088f694943fee574ef92b65d0ed62fd0799fb67023b6368259663236da76a6b5
48264826
name: cluster-network-addons-operator
48274827
- image: quay.io/kubevirt/cni-default-plugins@sha256:976a24392c2a096c38c2663d234b2d3131f5c24558889196d30b9ac1b6716788
48284828
name: cni-default-plugins
@@ -4844,9 +4844,9 @@ spec:
48444844
name: hyperconverged-cluster-operator
48454845
- image: +WEBHOOK_IMAGE_TO_REPLACE+
48464846
name: hyperconverged-cluster-webhook
4847-
- image: ghcr.io/kubevirt/ipam-controller@sha256:4fdc9c77b9e683f274a31fcb7f6dbcf765799596efd93bc37512fb860f07b02f
4847+
- image: ghcr.io/kubevirt/ipam-controller@sha256:802dde86e2cd8ea3609d1d7b98c856fa4324901ae52efba421fe5ebc5bf519d4
48484848
name: ipam-controller
4849-
- image: quay.io/kubevirt/kubemacpool@sha256:f9e5151798acc03798a007eacf51bc7a579c5e5a57851836eae601cc1eaa1c30
4849+
- image: quay.io/kubevirt/kubemacpool@sha256:2d72fb8d9d58e7adbd91df8da9f5db6bcb992779840e7293d321b1a9d9465ccf
48504850
name: kubemacpool
48514851
- image: ghcr.io/kubevirt/kubesecondarydns@sha256:f5fe9c98fb6d7e5e57a6df23fe82e43e65db5953d76af44adda9ab40c46ad0bf
48524852
name: kubesecondarydns

deploy/olm-catalog/community-kubevirt-hyperconverged/1.17.0/manifests/kubevirt-hyperconverged-operator.v1.17.0.clusterserviceversion.yaml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ metadata:
99
certified: "false"
1010
console.openshift.io/disable-operand-delete: "true"
1111
containerImage: quay.io/kubevirt/hyperconverged-cluster-operator:1.17.0-unstable
12-
createdAt: "2025-10-08 05:05:55"
12+
createdAt: "2025-10-22 05:06:51"
1313
description: A unified operator deploying and controlling KubeVirt and its supporting
1414
operators with opinionated defaults
1515
features.operators.openshift.io/cnf: "false"
@@ -3184,7 +3184,7 @@ spec:
31843184
- name: CDI_VERSION
31853185
value: v1.63.1
31863186
- name: NETWORK_ADDONS_VERSION
3187-
value: v0.100.2
3187+
value: v0.101.0-rc-0
31883188
- name: SSP_VERSION
31893189
value: v0.24.1
31903190
- name: HPPO_VERSION
@@ -3430,7 +3430,7 @@ spec:
34303430
- name: OVS_CNI_IMAGE
34313431
value: ghcr.io/k8snetworkplumbingwg/ovs-cni-plugin@sha256:435f374b434b3bc70a5cfaba0011fdcf5f433d96b98b06d29306cbd8db3a8c21
34323432
- name: KUBEMACPOOL_IMAGE
3433-
value: quay.io/kubevirt/kubemacpool@sha256:f9e5151798acc03798a007eacf51bc7a579c5e5a57851836eae601cc1eaa1c30
3433+
value: quay.io/kubevirt/kubemacpool@sha256:2d72fb8d9d58e7adbd91df8da9f5db6bcb992779840e7293d321b1a9d9465ccf
34343434
- name: MACVTAP_CNI_IMAGE
34353435
value: quay.io/kubevirt/macvtap-cni@sha256:af31faae20c0128a469dd4c1aa866d6bf78d1d2f5972127adf4c9438dcde10f4
34363436
- name: KUBE_RBAC_PROXY_IMAGE
@@ -3440,13 +3440,13 @@ spec:
34403440
- name: CORE_DNS_IMAGE
34413441
value: registry.k8s.io/coredns/coredns@sha256:a0ead06651cf580044aeb0a0feba63591858fb2e43ade8c9dea45a6a89ae7e5e
34423442
- name: KUBEVIRT_IPAM_CONTROLLER_IMAGE
3443-
value: ghcr.io/kubevirt/ipam-controller@sha256:4fdc9c77b9e683f274a31fcb7f6dbcf765799596efd93bc37512fb860f07b02f
3443+
value: ghcr.io/kubevirt/ipam-controller@sha256:802dde86e2cd8ea3609d1d7b98c856fa4324901ae52efba421fe5ebc5bf519d4
34443444
- name: OPERATOR_IMAGE
3445-
value: quay.io/kubevirt/cluster-network-addons-operator@sha256:0ec8c28176c12c2078ef34905c72da3031a9af51f76d4c2d23e22f75e9e1dbee
3445+
value: quay.io/kubevirt/cluster-network-addons-operator@sha256:088f694943fee574ef92b65d0ed62fd0799fb67023b6368259663236da76a6b5
34463446
- name: OPERATOR_NAME
34473447
value: cluster-network-addons-operator
34483448
- name: OPERATOR_VERSION
3449-
value: v0.100.2
3449+
value: v0.101.0-rc-0
34503450
- name: OPERATOR_NAMESPACE
34513451
valueFrom:
34523452
fieldRef:
@@ -3466,7 +3466,7 @@ spec:
34663466
value: prometheus-k8s
34673467
- name: RUNBOOK_URL_TEMPLATE
34683468
value: https://kubevirt.io/monitoring/runbooks/%s
3469-
image: quay.io/kubevirt/cluster-network-addons-operator@sha256:0ec8c28176c12c2078ef34905c72da3031a9af51f76d4c2d23e22f75e9e1dbee
3469+
image: quay.io/kubevirt/cluster-network-addons-operator@sha256:088f694943fee574ef92b65d0ed62fd0799fb67023b6368259663236da76a6b5
34703470
imagePullPolicy: IfNotPresent
34713471
livenessProbe:
34723472
httpGet:
@@ -4822,7 +4822,7 @@ spec:
48224822
name: cdi-uploadproxy
48234823
- image: quay.io/kubevirt/cdi-uploadserver@sha256:db3bf75d7a940e545b1a38d0bfff7fdc271cfc1d64a77609e07a5d0f2e6683ad
48244824
name: cdi-uploadserver
4825-
- image: quay.io/kubevirt/cluster-network-addons-operator@sha256:0ec8c28176c12c2078ef34905c72da3031a9af51f76d4c2d23e22f75e9e1dbee
4825+
- image: quay.io/kubevirt/cluster-network-addons-operator@sha256:088f694943fee574ef92b65d0ed62fd0799fb67023b6368259663236da76a6b5
48264826
name: cluster-network-addons-operator
48274827
- image: quay.io/kubevirt/cni-default-plugins@sha256:976a24392c2a096c38c2663d234b2d3131f5c24558889196d30b9ac1b6716788
48284828
name: cni-default-plugins
@@ -4844,9 +4844,9 @@ spec:
48444844
name: hyperconverged-cluster-operator
48454845
- image: quay.io/kubevirt/hyperconverged-cluster-webhook:1.17.0-unstable
48464846
name: hyperconverged-cluster-webhook
4847-
- image: ghcr.io/kubevirt/ipam-controller@sha256:4fdc9c77b9e683f274a31fcb7f6dbcf765799596efd93bc37512fb860f07b02f
4847+
- image: ghcr.io/kubevirt/ipam-controller@sha256:802dde86e2cd8ea3609d1d7b98c856fa4324901ae52efba421fe5ebc5bf519d4
48484848
name: ipam-controller
4849-
- image: quay.io/kubevirt/kubemacpool@sha256:f9e5151798acc03798a007eacf51bc7a579c5e5a57851836eae601cc1eaa1c30
4849+
- image: quay.io/kubevirt/kubemacpool@sha256:2d72fb8d9d58e7adbd91df8da9f5db6bcb992779840e7293d321b1a9d9465ccf
48504850
name: kubemacpool
48514851
- image: ghcr.io/kubevirt/kubesecondarydns@sha256:f5fe9c98fb6d7e5e57a6df23fe82e43e65db5953d76af44adda9ab40c46ad0bf
48524852
name: kubesecondarydns

0 commit comments

Comments
 (0)