This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 7438d02a3245c7fbb398e486905c7e74e409f7e3 Author: Antonin Stefanutti <anto...@stefanutti.fr> AuthorDate: Tue Mar 2 11:53:36 2021 +0100 chore: Upgrade to networking.k8s.io/v1 Ingress API --- config/rbac/operator-role-kubernetes.yaml | 2 +- helm/camel-k/templates/operator-role.yaml | 2 +- pkg/resources/resources.go | 4 ++-- pkg/trait/ingress.go | 30 ++++++++++++++++-------------- pkg/trait/ingress_test.go | 14 +++++++------- 5 files changed, 27 insertions(+), 25 deletions(-) diff --git a/config/rbac/operator-role-kubernetes.yaml b/config/rbac/operator-role-kubernetes.yaml index a285970..fda70ff 100644 --- a/config/rbac/operator-role-kubernetes.yaml +++ b/config/rbac/operator-role-kubernetes.yaml @@ -116,7 +116,7 @@ rules: - list - watch - apiGroups: - - extensions + - networking.k8s.io resources: - ingresses verbs: diff --git a/helm/camel-k/templates/operator-role.yaml b/helm/camel-k/templates/operator-role.yaml index b5b1aad..8515705 100644 --- a/helm/camel-k/templates/operator-role.yaml +++ b/helm/camel-k/templates/operator-role.yaml @@ -129,7 +129,7 @@ rules: - apiGroups: - extensions resources: - - ingresses + - networking.k8s.io verbs: - create - delete diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go index 53caeed..086d23e 100644 --- a/pkg/resources/resources.go +++ b/pkg/resources/resources.go @@ -283,9 +283,9 @@ var assets = func() http.FileSystem { "/rbac/operator-role-kubernetes.yaml": &vfsgen۰CompressedFileInfo{ name: "operator-role-kubernetes.yaml", modTime: time.Time{}, - uncompressedSize: 2342, + uncompressedSize: 2349, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x55\xc1\x6e\xe3\x36\x10\xbd\xeb\x2b\x1e\xac\xcb\x6e\x11\xdb\x6d\x4f\x85\x7b\x72\x77\x93\xd6\xe8\xc2\x06\x22\x6f\x17\x7b\xa4\xa8\xb1\x3c\x0d\xc5\x61\x49\x2a\x8a\xfb\xf5\x05\x29\x7b\xd7\x59\x27\x40\x0e\x41\x5b\x5d\x3c\xa4\x86\x6f\xde\x9b\x37\xa6\x4a\x4c\x5f\xef\x29\x4a\x7c\x60\x4d\x36\x50\x83\x28\x88\x7b\xc2\xd2\x29\xbd\x27\x54\xb2\x8b\x83\xf2\x84\x1b\xe9\x6d\xa3\x22\x8b\xc5\x9b\x65\x75\xf3\x16\xbd\x6d\xc8\x43\x2c\x [...] + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x55\xc1\x6e\xe3\x36\x10\xbd\xeb\x2b\x1e\xac\xcb\x6e\x11\xdb\x6d\x4f\x85\x7b\x72\x77\x93\xd6\xe8\xc2\x06\x22\x6f\x17\x7b\xa4\xa8\xb1\x3c\x0d\xc5\x61\x49\x2a\x8a\xfb\xf5\x05\x29\x7b\xd7\x59\x27\x40\x0e\x41\x5b\x5d\x3c\xa4\x46\x6f\xde\x9b\x79\x26\x4b\x4c\x5f\xef\x29\x4a\x7c\x60\x4d\x36\x50\x83\x28\x88\x7b\xc2\xd2\x29\xbd\x27\x54\xb2\x8b\x83\xf2\x84\x1b\xe9\x6d\xa3\x22\x8b\xc5\x9b\x65\x75\xf3\x16\xbd\x6d\xc8\x43\x2c\x [...] }, "/rbac/operator-role-leases.yaml": &vfsgen۰CompressedFileInfo{ name: "operator-role-leases.yaml", diff --git a/pkg/trait/ingress.go b/pkg/trait/ingress.go index c1f8207..dd0d565 100644 --- a/pkg/trait/ingress.go +++ b/pkg/trait/ingress.go @@ -21,13 +21,11 @@ import ( "errors" "fmt" - v1 "github.com/apache/camel-k/pkg/apis/camel/v1" - - "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/util/intstr" - corev1 "k8s.io/api/core/v1" + networking "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + v1 "github.com/apache/camel-k/pkg/apis/camel/v1" ) // The Ingress trait can be used to expose the service associated with the integration @@ -108,21 +106,25 @@ func (t *ingressTrait) Apply(e *Environment) error { return errors.New("cannot Apply ingress trait: no target service") } - ingress := v1beta1.Ingress{ + ingress := networking.Ingress{ TypeMeta: metav1.TypeMeta{ Kind: "Ingress", - APIVersion: v1beta1.SchemeGroupVersion.String(), + APIVersion: networking.SchemeGroupVersion.String(), }, ObjectMeta: metav1.ObjectMeta{ Name: service.Name, Namespace: service.Namespace, }, - Spec: v1beta1.IngressSpec{ - Backend: &v1beta1.IngressBackend{ - ServiceName: service.Name, - ServicePort: intstr.FromString("http"), + Spec: networking.IngressSpec{ + DefaultBackend: &networking.IngressBackend{ + Service: &networking.IngressServiceBackend{ + Name: service.Name, + Port: networking.ServiceBackendPort{ + Name: "http", + }, + }, }, - Rules: []v1beta1.IngressRule{ + Rules: []networking.IngressRule{ { Host: t.Host, }, @@ -135,8 +137,8 @@ func (t *ingressTrait) Apply(e *Environment) error { message := fmt.Sprintf("%s(%s) -> %s(%s)", ingress.Name, t.Host, - ingress.Spec.Backend.ServiceName, - ingress.Spec.Backend.ServicePort.String()) + ingress.Spec.DefaultBackend.Service.Name, + ingress.Spec.DefaultBackend.Service.Port.Name) e.Integration.Status.SetCondition( v1.IntegrationConditionExposureAvailable, diff --git a/pkg/trait/ingress_test.go b/pkg/trait/ingress_test.go index b0f08ca..a0fb217 100644 --- a/pkg/trait/ingress_test.go +++ b/pkg/trait/ingress_test.go @@ -21,15 +21,15 @@ import ( "context" "testing" - v1 "github.com/apache/camel-k/pkg/apis/camel/v1" - "github.com/apache/camel-k/pkg/util/kubernetes" "github.com/stretchr/testify/assert" - "k8s.io/api/extensions/v1beta1" - "k8s.io/apimachinery/pkg/runtime" - corev1 "k8s.io/api/core/v1" + networking "k8s.io/api/networking/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + + v1 "github.com/apache/camel-k/pkg/apis/camel/v1" + "github.com/apache/camel-k/pkg/util/kubernetes" ) func TestConfigureIngressTraitDoesSucceed(t *testing.T) { @@ -139,10 +139,10 @@ func TestApplyIngressTraitDoesSucceed(t *testing.T) { assert.Len(t, environment.Resources.Items(), 2) environment.Resources.Visit(func(resource runtime.Object) { - if ingress, ok := resource.(*v1beta1.Ingress); ok { + if ingress, ok := resource.(*networking.Ingress); ok { assert.Equal(t, "service-name", ingress.Name) assert.Equal(t, "namespace", ingress.Namespace) - assert.Equal(t, "service-name", ingress.Spec.Backend.ServiceName) + assert.Equal(t, "service-name", ingress.Spec.DefaultBackend.Service.Name) assert.Len(t, ingress.Spec.Rules, 1) assert.Equal(t, "hostname", ingress.Spec.Rules[0].Host) }