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)
                }

Reply via email to