podman-desktop icon indicating copy to clipboard operation
podman-desktop copied to clipboard

Validation error shown when creating kind cluster with Contour ingress controller

Open amisskii opened this issue 6 months ago • 7 comments

Bug description

After merging commit 11d9330, we are encountering a validation error message when attempting to create a kind cluster with an ingress controller. Despite the error, the cluster appears to be created successfully and remains functional.

Observed error:

Error: Error: Failed to create kind cluster. CustomResourceDefinition.apiextensions.k8s.io "contourdeployments.projectcontour.io" is invalid: [spec.validation.openAPIV3Schema.properties[spec].properties[contour].properties[deployment].properties[strategy].properties[rollingUpdate].properties[maxSurge].type: Required value: must not be empty for specified object fields, spec.validation.openAPIV3Schema.properties[spec].properties[contour].properties[deployment].properties[strategy].properties[rollingUpdate].properties[maxUnavailable].type: Required value: must not be empty for specified object fields, spec.validation.openAPIV3Schema.properties[spec].properties[envoy].properties[daemonSet].properties[updateStrategy].properties[rollingUpdate].properties[maxSurge].type: Required value: must not be empty for specified object fields, spec.validation.openAPIV3Schema.properties[spec].properties[envoy].properties[daemonSet].properties[updateStrategy].properties[rollingUpdate].properties[maxUnavailable].type: Required value: must not be empty for specified object fields, spec.validation.openAPIV3Schema.properties[spec].properties[envoy].properties[deployment].properties[strategy].properties[rollingUpdate].properties[maxSurge].type: Required value: must not be empty for specified object fields, spec.validation.openAPIV3Schema.properties[spec].properties[envoy].properties[deployment].properties[strategy].properties[rollingUpdate].properties[maxUnavailable].type: Required value: must not be empty for specified object fields]

Image

Operating system

Fedora, macOS, Windows

Installation Method

None

Version

next (development version)

Relevant log output


Additional context

No response

amisskii avatar Jun 04 '25 19:06 amisskii

I can reproduce the issue. It is connected directly to a countour ingress controller. WE probably need to update some configurations/image/etc in the config we are using.

odockal avatar Jun 05 '25 08:06 odockal

Can reproduce as well. Seems related to Contour CRD validation. Maybe updating Contour should fix the issue

jeffmaury avatar Jun 05 '25 12:06 jeffmaury

Looks like https://github.com/kubernetes-client/javascript/issues/2483 we are not only one who have this problem

gastoner avatar Jun 18 '25 15:06 gastoner

Looks like kubernetes-client/javascript#2483 we are not only one who have this problem

So there are 2 solutions:

  • revert the version of kubernetes client but it may have huge impacts and non regression will be very hard to ensure
  • use a patched version of the library, @benoitf may help

jeffmaury avatar Jun 19 '25 15:06 jeffmaury

Looks like kubernetes-client/javascript#2483 we are not only one who have this problem

So there are 2 solutions:

* revert the version of kubernetes client but it may have huge impacts and non regression will be very hard to ensure

* use a patched version of the library, [@benoitf](https://github.com/benoitf) may help

If we go with a patched library on our own, we would need to thoroughly retest everything on our side. (ie. use qe/testing-required on the PR). But this seems to me like a very tricky path, if we do not need some feature released after 1.1.x library version I would be for reverting.

odockal avatar Jun 20 '25 05:06 odockal

Looks like kubernetes-client/javascript#2483 we are not only one who have this problem

So there are 2 solutions:

* revert the version of kubernetes client but it may have huge impacts and non regression will be very hard to ensure

* use a patched version of the library, [@benoitf](https://github.com/benoitf) may help

If we go with a patched library on our own, we would need to thoroughly retest everything on our side. (ie. use qe/testing-required on the PR). But this seems to me like a very tricky path, if we do not need some feature released after 1.1.x library version I would be for reverting.

Reverting would imply even more testing as it would impact other parts of Podman Desktop (all Kubernetes features)

jeffmaury avatar Jun 20 '25 06:06 jeffmaury

I'm also not comfortable reverting and using a fixed version of the library.

If reverting the patch https://github.com/kubernetes-client/javascript/pull/2400/files (or any other patch) works for us, I propose to patch the library locally with the revert patch (pnpm provides nice tooling for this: https://pnpm.io/cli/patch), and propose a PR on the upstream library, so we can sync with the library as soon as the patch is accepted upstream.

feloy avatar Jun 20 '25 06:06 feloy