Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package okteto for openSUSE:Factory checked 
in at 2026-03-09 16:20:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/okteto (Old)
 and      /work/SRC/openSUSE:Factory/.okteto.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "okteto"

Mon Mar  9 16:20:44 2026 rev:115 rq:1337619 version:3.17.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/okteto/okteto.changes    2026-03-05 
17:33:16.491744512 +0100
+++ /work/SRC/openSUSE:Factory/.okteto.new.8177/okteto.changes  2026-03-09 
16:24:48.578292582 +0100
@@ -1,0 +2,7 @@
+Thu Mar 05 11:58:02 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 3.17.1:
+  * fix: handle missing Gateway API CRDs gracefully in compose
+    endpoints (#4934) (#4935)
+
+-------------------------------------------------------------------

Old:
----
  okteto-3.17.0.obscpio

New:
----
  okteto-3.17.1.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ okteto.spec ++++++
--- /var/tmp/diff_new_pack.lIFtau/_old  2026-03-09 16:24:49.718339371 +0100
+++ /var/tmp/diff_new_pack.lIFtau/_new  2026-03-09 16:24:49.718339371 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           okteto
-Version:        3.17.0
+Version:        3.17.1
 Release:        0
 Summary:        Develop your applications directly in your Kubernetes Cluster
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.lIFtau/_old  2026-03-09 16:24:49.750340684 +0100
+++ /var/tmp/diff_new_pack.lIFtau/_new  2026-03-09 16:24:49.754340848 +0100
@@ -3,8 +3,8 @@
     <param name="url">https://github.com/okteto/okteto</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">3.17.0</param>
-    <param name="match-tag">3.17.0</param>
+    <param name="revision">3.17.1</param>
+    <param name="match-tag">3.17.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
   </service>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.lIFtau/_old  2026-03-09 16:24:49.774341670 +0100
+++ /var/tmp/diff_new_pack.lIFtau/_new  2026-03-09 16:24:49.778341834 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/okteto/okteto</param>
-              <param 
name="changesrevision">0aa6be9edb4292b528539145cbc8ed862e11761d</param></service></servicedata>
+              <param 
name="changesrevision">f21e6df21765e5e1b61e6dd36418ebeadf8269a8</param></service></servicedata>
 (No newline at EOF)
 

++++++ okteto-3.17.0.obscpio -> okteto-3.17.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-3.17.0/cmd/deploy/deploy.go 
new/okteto-3.17.1/cmd/deploy/deploy.go
--- old/okteto-3.17.0/cmd/deploy/deploy.go      2026-03-04 13:54:49.000000000 
+0100
+++ new/okteto-3.17.1/cmd/deploy/deploy.go      2026-03-05 11:52:22.000000000 
+0100
@@ -864,6 +864,13 @@
 
        var endpointDeployer stack.EndpointDeployer
        if useHTTPRoute {
+               available, err := httproutes.IsAvailable(ctx, cfg)
+               if err != nil {
+                       return err
+               }
+               if !available {
+                       return fmt.Errorf("Gateway API (HTTPRoute) is not 
installed in this cluster. Set OKTETO_COMPOSE_ENDPOINTS_TYPE=ingress or install 
the Gateway API CRDs")
+               }
                // Create HTTPRoute deployer
                httpRouteClient, err := httproutes.NewHTTPRouteClient(cfg)
                if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-3.17.0/pkg/cmd/stack/deploy.go 
new/okteto-3.17.1/pkg/cmd/stack/deploy.go
--- old/okteto-3.17.0/pkg/cmd/stack/deploy.go   2026-03-04 13:54:49.000000000 
+0100
+++ new/okteto-3.17.1/pkg/cmd/stack/deploy.go   2026-03-05 11:52:22.000000000 
+0100
@@ -136,7 +136,13 @@
                return true, metadata, nil
        }
 
-       return true, metadata, nil
+       if metadata.GatewayName != "" && metadata.GatewayNamespace != "" {
+               oktetoLog.Infof("Using HTTPRoute for endpoints with the 
configured gateway %s/%s (auto-detected from cluster context)", 
metadata.GatewayNamespace, metadata.GatewayName)
+               return true, metadata, nil
+       }
+
+       oktetoLog.Infof("Using Ingress for endpoints (no gateway configured in 
cluster context)")
+       return false, types.ClusterMetadata{}, nil
 }
 
 func (sd *Stack) RunDeploy(ctx context.Context, s *model.Stack, options 
*DeployOptions) error {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-3.17.0/pkg/cmd/stack/deploy_test.go 
new/okteto-3.17.1/pkg/cmd/stack/deploy_test.go
--- old/okteto-3.17.0/pkg/cmd/stack/deploy_test.go      2026-03-04 
13:54:49.000000000 +0100
+++ new/okteto-3.17.1/pkg/cmd/stack/deploy_test.go      2026-03-05 
11:52:22.000000000 +0100
@@ -970,14 +970,14 @@
                {
                        name:             "no gateway configured",
                        gateway:          nil,
-                       expectedUseRoute: true,
+                       expectedUseRoute: false,
                        expectedMetadata: types.ClusterMetadata{},
                },
                {
                        name:             "gateway without namespace",
                        gateway:          &okteto.GatewayMetadata{Name: 
"test-gateway"},
-                       expectedUseRoute: true,
-                       expectedMetadata: types.ClusterMetadata{GatewayName: 
"test-gateway"},
+                       expectedUseRoute: false,
+                       expectedMetadata: types.ClusterMetadata{},
                },
                {
                        name:               "default gateway type forces 
ingress",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-3.17.0/pkg/cmd/stack/destroy.go 
new/okteto-3.17.1/pkg/cmd/stack/destroy.go
--- old/okteto-3.17.0/pkg/cmd/stack/destroy.go  2026-03-04 13:54:49.000000000 
+0100
+++ new/okteto-3.17.1/pkg/cmd/stack/destroy.go  2026-03-05 11:52:22.000000000 
+0100
@@ -178,6 +178,14 @@
 }
 
 func destroyHTTPRoutes(ctx context.Context, s *model.Stack, config 
*rest.Config, destroyAll bool) error {
+       available, err := httproutes.IsAvailable(ctx, config)
+       if err != nil {
+               return err
+       }
+       if !available {
+               return nil
+       }
+
        hrClient, err := httproutes.NewHTTPRouteClient(config)
        if err != nil {
                return fmt.Errorf("error creating httproute client: %w", err)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-3.17.0/pkg/k8s/httproutes/crud.go 
new/okteto-3.17.1/pkg/k8s/httproutes/crud.go
--- old/okteto-3.17.0/pkg/k8s/httproutes/crud.go        2026-03-04 
13:54:49.000000000 +0100
+++ new/okteto-3.17.1/pkg/k8s/httproutes/crud.go        2026-03-05 
11:52:22.000000000 +0100
@@ -19,7 +19,9 @@
 
        oktetoErrors "github.com/okteto/okteto/pkg/errors"
        oktetoLog "github.com/okteto/okteto/pkg/log"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+       "k8s.io/client-go/discovery"
        "k8s.io/client-go/rest"
        gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
        gatewayclientset 
"sigs.k8s.io/gateway-api/pkg/client/clientset/versioned"
@@ -63,6 +65,9 @@
        result := []metav1.Object{}
        httpRouteList, err := 
c.gatewayClient.GatewayV1().HTTPRoutes(namespace).List(ctx, 
metav1.ListOptions{LabelSelector: labels})
        if err != nil {
+               if k8serrors.IsNotFound(err) {
+                       return result, nil
+               }
                return nil, err
        }
 
@@ -111,6 +116,9 @@
        result := make([]string, 0)
        httpRouteList, err := 
c.gatewayClient.GatewayV1().HTTPRoutes(namespace).List(ctx, 
metav1.ListOptions{LabelSelector: labels})
        if err != nil {
+               if k8serrors.IsNotFound(err) {
+                       return result, nil
+               }
                return nil, err
        }
 
@@ -137,3 +145,19 @@
 
        return result, nil
 }
+
+// IsAvailable checks whether the Gateway API CRDs are installed in the cluster
+func IsAvailable(ctx context.Context, config *rest.Config) (bool, error) {
+       discoveryClient, err := discovery.NewDiscoveryClientForConfig(config)
+       if err != nil {
+               return false, fmt.Errorf("error creating discovery client: %w", 
err)
+       }
+       _, err = 
discoveryClient.ServerResourcesForGroupVersion("gateway.networking.k8s.io/v1")
+       if err != nil {
+               if k8serrors.IsNotFound(err) {
+                       return false, nil
+               }
+               return false, fmt.Errorf("error checking gateway api 
availability: %w", err)
+       }
+       return true, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-3.17.0/pkg/k8s/httproutes/crud_test.go 
new/okteto-3.17.1/pkg/k8s/httproutes/crud_test.go
--- old/okteto-3.17.0/pkg/k8s/httproutes/crud_test.go   2026-03-04 
13:54:49.000000000 +0100
+++ new/okteto-3.17.1/pkg/k8s/httproutes/crud_test.go   2026-03-05 
11:52:22.000000000 +0100
@@ -19,8 +19,10 @@
        "testing"
 
        "github.com/stretchr/testify/require"
+       k8serrors "k8s.io/apimachinery/pkg/api/errors"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
        "k8s.io/apimachinery/pkg/runtime"
+       "k8s.io/apimachinery/pkg/runtime/schema"
        k8sTesting "k8s.io/client-go/testing"
        gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
        gatewayfake 
"sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake"
@@ -116,6 +118,19 @@
        require.Len(t, hrList, 1)
 }
 
+func TestListCRDNotInstalled(t *testing.T) {
+       ctx := context.Background()
+       clientset := gatewayfake.NewSimpleClientset()
+       clientset.PrependReactor("list", "httproutes", func(_ 
k8sTesting.Action) (bool, runtime.Object, error) {
+               return true, nil, 
k8serrors.NewNotFound(schema.GroupResource{Group: "gateway.networking.k8s.io", 
Resource: "httproutes"}, "")
+       })
+       hrClient := Client{gatewayClient: clientset}
+
+       hrList, err := hrClient.List(ctx, "test", "")
+       require.NoError(t, err)
+       require.Empty(t, hrList)
+}
+
 func TestDestroy(t *testing.T) {
        var tests = []struct {
                httpRoute *gatewayv1.HTTPRoute

++++++ okteto.obsinfo ++++++
--- /var/tmp/diff_new_pack.lIFtau/_old  2026-03-09 16:24:50.822384683 +0100
+++ /var/tmp/diff_new_pack.lIFtau/_new  2026-03-09 16:24:50.830385011 +0100
@@ -1,5 +1,5 @@
 name: okteto
-version: 3.17.0
-mtime: 1772628889
-commit: 0aa6be9edb4292b528539145cbc8ed862e11761d
+version: 3.17.1
+mtime: 1772707942
+commit: f21e6df21765e5e1b61e6dd36418ebeadf8269a8
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/okteto/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.okteto.new.8177/vendor.tar.gz differ: char 133, 
line 1

Reply via email to