-
Notifications
You must be signed in to change notification settings - Fork 76
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ingress: Migrate to networking.k8s.io/v1
Update the ingress-to-route controller and unit tests to use the networking.k8s.io/v1 API, implement IngressClass, and migrate routes created using older ingress API versions. * pkg/cmd/controller/ingress.go: Update to import and use networking/v1 packages. (RunIngressToRouteController): Pass ingressclass client to NewController. * pkg/route/ingress/ingress.go: Update to import and use networking/v1 packages. (Controller): Add ingressclassLister field. (NewController): Add parameter for ingressclasses informer. Use it to get ingressclassLister. (sync): Check the ingress's kubernetes.io/ingress.class annotation and spec.ingressClassName field. If an ingressclass is specified, look it up and check its spec.controller field value. If the ingress specifies an ingressclass that does not specify the openshift.io/ingress-to-route ingressclass, ignore the ingress. When patching an ingress, replace the existing ownerReferences field value in case the API version has changed. (validOwnerRefAPIVersions): New variable. (hasIngressOwnerRef): Use validOwnerRefAPIVersions to verify that the owner reference specifies some recognized API version. (newRouteForIngress): Update to use the ingress's spec.backend.service field to get the target service. Use the networking.k8s.io/v1 API version in the returned route's owner reference. (routeMatchesIngress): Update to use the ingress's spec.backend.service field. Verify that the route's owner reference uses the networking.k8s.io/v1 API version. (targetPortForService): Replace the ingress path parameter with an ingress service backend parameter. * pkg/route/ingress/ingress_test.go: Update to import and use networking/v1 packages. (ingressclassLister): New type. Implement a fake ingressclass lister. (List, Get): New methods for ingressclassLister. (complexIngress): Update to the v1 API. (TestController_stabilizeAfterCreate): Use a fake ingressclass lister. (TestController_sync): Define fake ingressclass lister with an ingressclass that specifies the OpenShift ingress controller. Update ingresses in test cases to the v1 API. Update test cases to expect the controller to patch ownerReferences. Add test cases: "ignores ingress with third-party ingressclass", "ignores ingress with unsupported path type", "create route - default ingresscontroller", "create route - custom ingresscontroller", "no-op - ignore route created for an ingress with a third-party class", and "update route with old owner reference". Augment the "create route" test case to verify correct behavior for the implemented path types.
- Loading branch information
Showing
3 changed files
with
1,081 additions
and
428 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.