Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package clusterctl for openSUSE:Factory checked in at 2025-08-20 13:26:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/clusterctl (Old) and /work/SRC/openSUSE:Factory/.clusterctl.new.29662 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "clusterctl" Wed Aug 20 13:26:45 2025 rev:20 rq:1300421 version:1.10.5 Changes: -------- --- /work/SRC/openSUSE:Factory/clusterctl/clusterctl.changes 2025-07-16 17:35:56.889944990 +0200 +++ /work/SRC/openSUSE:Factory/.clusterctl.new.29662/clusterctl.changes 2025-08-20 13:27:51.254757370 +0200 @@ -1,0 +2,6 @@ +Wed Aug 20 06:56:30 UTC 2025 - Johannes Kastl <opensuse_buildserv...@ojkastl.de> + +- Update to version 1.10.5: + * Update github.com/coredns/corefile-migration: v1.0.26 → v1.0.27 + +------------------------------------------------------------------- Old: ---- clusterctl-1.10.4.obscpio New: ---- clusterctl-1.10.5.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ clusterctl.spec ++++++ --- /var/tmp/diff_new_pack.UmFxlN/_old 2025-08-20 13:27:53.390846178 +0200 +++ /var/tmp/diff_new_pack.UmFxlN/_new 2025-08-20 13:27:53.390846178 +0200 @@ -1,7 +1,7 @@ # # spec file for package clusterctl # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define version_git_minor 8 Name: clusterctl -Version: 1.10.4 +Version: 1.10.5 Release: 0 Summary: CLI tool to handle the lifecycle of a Cluster API management cluster License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.UmFxlN/_old 2025-08-20 13:27:53.426847675 +0200 +++ /var/tmp/diff_new_pack.UmFxlN/_new 2025-08-20 13:27:53.426847675 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/kubernetes-sigs/cluster-api</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v1.10.4</param> + <param name="revision">v1.10.5</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.UmFxlN/_old 2025-08-20 13:27:53.450848672 +0200 +++ /var/tmp/diff_new_pack.UmFxlN/_new 2025-08-20 13:27:53.454848839 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/kubernetes-sigs/cluster-api</param> - <param name="changesrevision">737edc88faed28b0bd81f6768ebe2ea276fdbe3a</param></service></servicedata> + <param name="changesrevision">df6c089725748546092add8d89e96650dce1de1d</param></service></servicedata> (No newline at EOF) ++++++ clusterctl-1.10.4.obscpio -> clusterctl-1.10.5.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/Makefile new/clusterctl-1.10.5/Makefile --- old/clusterctl-1.10.4/Makefile 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/Makefile 2025-08-13 20:11:08.000000000 +0200 @@ -23,7 +23,7 @@ # # Go. # -GO_VERSION ?= 1.23.10 +GO_VERSION ?= 1.23.12 GO_DIRECTIVE_VERSION ?= 1.23.0 GO_CONTAINER_IMAGE ?= docker.io/library/golang:$(GO_VERSION) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/Tiltfile new/clusterctl-1.10.5/Tiltfile --- old/clusterctl-1.10.4/Tiltfile 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/Tiltfile 2025-08-13 20:11:08.000000000 +0200 @@ -172,7 +172,7 @@ tilt_helper_dockerfile_header = """ # Tilt image -FROM golang:1.23.10 as tilt-helper +FROM golang:1.23.12 as tilt-helper # Install delve. Note this should be kept in step with the Go release minor version. RUN go install github.com/go-delve/delve/cmd/dlv@v1.23 # Support live reloading with Tilt @@ -183,7 +183,7 @@ """ tilt_dockerfile_header = """ -FROM golang:1.23.10 as tilt +FROM golang:1.23.12 as tilt WORKDIR / COPY --from=tilt-helper /process.txt . COPY --from=tilt-helper /start.sh . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/docs/book/src/reference/versions.md new/clusterctl-1.10.5/docs/book/src/reference/versions.md --- old/clusterctl-1.10.4/docs/book/src/reference/versions.md 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/docs/book/src/reference/versions.md 2025-08-13 20:11:08.000000000 +0200 @@ -314,7 +314,9 @@ | v1.9 | v1.11.3 | | >= v1.9.4 | v1.12.0 | | >= v1.9.7 | v1.12.1 | +| >= v1.9.11 | v1.12.3 | | v1.10 | v1.12.1 | +| >= v1.10.5 | v1.12.3 | See [corefile-migration](https://github.com/coredns/corefile-migration) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/exp/runtime/server/server.go new/clusterctl-1.10.5/exp/runtime/server/server.go --- old/clusterctl-1.10.4/exp/runtime/server/server.go 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/exp/runtime/server/server.go 2025-08-13 20:11:08.000000000 +0200 @@ -80,6 +80,10 @@ // Note: This option is only used when TLSOpts does not set GetCertificate. KeyName string + // ClientCAName is the CA certificate name which server used to verify remote(client)'s certificate. + // Defaults to "", which means server does not verify client's certificate. + ClientCAName string + // TLSOpts is used to allow configuring the TLS config used for the server. // This also allows providing a certificate via GetCertificate. TLSOpts []func(*tls.Config) @@ -105,13 +109,14 @@ webhookServer := webhook.NewServer( webhook.Options{ - Port: options.Port, - Host: options.Host, - CertDir: options.CertDir, - CertName: options.CertName, - KeyName: options.KeyName, - TLSOpts: options.TLSOpts, - WebhookMux: http.NewServeMux(), + Port: options.Port, + Host: options.Host, + ClientCAName: options.ClientCAName, + CertDir: options.CertDir, + CertName: options.CertName, + KeyName: options.KeyName, + TLSOpts: options.TLSOpts, + WebhookMux: http.NewServeMux(), }, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/go.mod new/clusterctl-1.10.5/go.mod --- old/clusterctl-1.10.4/go.mod 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/go.mod 2025-08-13 20:11:08.000000000 +0200 @@ -7,7 +7,7 @@ github.com/Masterminds/sprig/v3 v3.3.0 github.com/adrg/xdg v0.5.3 github.com/blang/semver/v4 v4.0.0 - github.com/coredns/corefile-migration v1.0.26 + github.com/coredns/corefile-migration v1.0.27 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc github.com/distribution/reference v0.6.0 github.com/drone/envsubst/v2 v2.0.0-20210730161058-179042472c46 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/go.sum new/clusterctl-1.10.5/go.sum --- old/clusterctl-1.10.4/go.sum 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/go.sum 2025-08-13 20:11:08.000000000 +0200 @@ -67,8 +67,8 @@ github.com/cloudflare/circl v1.6.1/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs= github.com/coredns/caddy v1.1.1 h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0= github.com/coredns/caddy v1.1.1/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4= -github.com/coredns/corefile-migration v1.0.26 h1:xiiEkVB1Dwolb24pkeDUDBfygV9/XsOSq79yFCrhptY= -github.com/coredns/corefile-migration v1.0.26/go.mod h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY= +github.com/coredns/corefile-migration v1.0.27 h1:WIIw5sU0LfGgoGnhdrYdVcto/aWmJoGA/C62iwkU0JM= +github.com/coredns/corefile-migration v1.0.27/go.mod h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY= github.com/coreos/go-semver v0.1.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/hack/tools/go.sum new/clusterctl-1.10.5/hack/tools/go.sum --- old/clusterctl-1.10.4/hack/tools/go.sum 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/hack/tools/go.sum 2025-08-13 20:11:08.000000000 +0200 @@ -77,8 +77,8 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/coredns/caddy v1.1.1 h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0= github.com/coredns/caddy v1.1.1/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4= -github.com/coredns/corefile-migration v1.0.26 h1:xiiEkVB1Dwolb24pkeDUDBfygV9/XsOSq79yFCrhptY= -github.com/coredns/corefile-migration v1.0.26/go.mod h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY= +github.com/coredns/corefile-migration v1.0.27 h1:WIIw5sU0LfGgoGnhdrYdVcto/aWmJoGA/C62iwkU0JM= +github.com/coredns/corefile-migration v1.0.27/go.mod h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf h1:iW4rZ826su+pqaw19uhpSCzhj44qo35pNgKFGqzDKkU= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/internal/controllers/machinedeployment/mdutil/util.go new/clusterctl-1.10.5/internal/controllers/machinedeployment/mdutil/util.go --- old/clusterctl-1.10.4/internal/controllers/machinedeployment/mdutil/util.go 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/internal/controllers/machinedeployment/mdutil/util.go 2025-08-13 20:11:08.000000000 +0200 @@ -498,9 +498,9 @@ return matchingMachineSets[0], "", nil } - // Pick the first matching MachineSet that has been created after RolloutAfter. + // Pick the first matching MachineSet that has been created at RolloutAfter or later. for _, ms := range matchingMachineSets { - if ms.CreationTimestamp.After(deployment.Spec.RolloutAfter.Time) { + if ms.CreationTimestamp.Sub(deployment.Spec.RolloutAfter.Time) >= 0 { return ms, "", nil } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/internal/controllers/machinedeployment/mdutil/util_test.go new/clusterctl-1.10.5/internal/controllers/machinedeployment/mdutil/util_test.go --- old/clusterctl-1.10.4/internal/controllers/machinedeployment/mdutil/util_test.go 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/internal/controllers/machinedeployment/mdutil/util_test.go 2025-08-13 20:11:08.000000000 +0200 @@ -421,6 +421,9 @@ msCreatedAfterRolloutAfter := generateMS(deployment) msCreatedAfterRolloutAfter.CreationTimestamp = oneAfterRolloutAfter + msCreatedExactlyInRolloutAfter := generateMS(deployment) + msCreatedExactlyInRolloutAfter.CreationTimestamp = rolloutAfter + tests := []struct { Name string deployment clusterv1.MachineDeployment @@ -484,6 +487,14 @@ expected: &msCreatedAfterRolloutAfter, }, { + // https://github.com/kubernetes-sigs/cluster-api/issues/12260 + Name: "Get MachineSet created exactly in RolloutAfter if reconciliationTime > rolloutAfter", + deployment: *deploymentWithRolloutAfter, + msList: []*clusterv1.MachineSet{&msCreatedExactlyInRolloutAfter, &msCreatedTwoBeforeRolloutAfter}, + reconciliationTime: &oneAfterRolloutAfter, + expected: &msCreatedExactlyInRolloutAfter, + }, + { Name: "Get MachineSet created after RolloutAfter if reconciliationTime is > rolloutAfter (inverse order in ms list)", deployment: *deploymentWithRolloutAfter, msList: []*clusterv1.MachineSet{&msCreatedTwoBeforeRolloutAfter, &msCreatedAfterRolloutAfter}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/internal/runtime/client/client.go new/clusterctl-1.10.5/internal/runtime/client/client.go --- old/clusterctl-1.10.4/internal/runtime/client/client.go 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/internal/runtime/client/client.go 2025-08-13 20:11:08.000000000 +0200 @@ -60,6 +60,8 @@ // Options are creation options for a Client. type Options struct { + CertFile string // Path of the PEM-encoded client certificate. + KeyFile string // Path of the PEM-encoded client key. Catalog *runtimecatalog.Catalog Registry runtimeregistry.ExtensionRegistry Client ctrlclient.Client @@ -68,6 +70,8 @@ // New returns a new Client. func New(options Options) runtimeclient.Client { return &client{ + certFile: options.CertFile, + keyFile: options.KeyFile, catalog: options.Catalog, registry: options.Registry, client: options.Client, @@ -77,6 +81,8 @@ var _ runtimeclient.Client = &client{} type client struct { + certFile string + keyFile string catalog *runtimecatalog.Catalog registry runtimeregistry.ExtensionRegistry client ctrlclient.Client @@ -102,6 +108,8 @@ request := &runtimehooksv1.DiscoveryRequest{} response := &runtimehooksv1.DiscoveryResponse{} opts := &httpCallOptions{ + certFile: c.certFile, + keyFile: c.keyFile, catalog: c.catalog, config: extensionConfig.Spec.ClientConfig, registrationGVH: hookGVH, @@ -329,6 +337,8 @@ } httpOpts := &httpCallOptions{ + certFile: c.certFile, + keyFile: c.keyFile, catalog: c.catalog, config: registration.ClientConfig, registrationGVH: registration.GroupVersionHook, @@ -396,6 +406,8 @@ } type httpCallOptions struct { + certFile string + keyFile string catalog *runtimecatalog.Catalog config runtimev1.ClientConfig registrationGVH runtimecatalog.GroupVersionHook @@ -484,6 +496,8 @@ client := http.DefaultClient tlsConfig, err := transport.TLSConfigFor(&transport.Config{ TLS: transport.TLSConfig{ + CertFile: opts.certFile, + KeyFile: opts.keyFile, CAData: opts.config.CABundle, ServerName: extensionURL.Hostname(), }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/internal/runtime/client/client_test.go new/clusterctl-1.10.5/internal/runtime/client/client_test.go --- old/clusterctl-1.10.4/internal/runtime/client/client_test.go 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/internal/runtime/client/client_test.go 2025-08-13 20:11:08.000000000 +0200 @@ -19,10 +19,13 @@ import ( "context" "crypto/tls" + "crypto/x509" "encoding/json" "fmt" "net/http" "net/http/httptest" + "os" + "path/filepath" "regexp" "testing" @@ -842,6 +845,102 @@ } } +func TestClient_CallExtensionWithClientAuthentication(t *testing.T) { + ns := &corev1.Namespace{ + TypeMeta: metav1.TypeMeta{ + Kind: "Namespace", + APIVersion: corev1.SchemeGroupVersion.String(), + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + }, + } + + validExtensionHandlerWithFailPolicy := runtimev1.ExtensionConfig{ + ObjectMeta: metav1.ObjectMeta{ + ResourceVersion: "15", + }, + Spec: runtimev1.ExtensionConfigSpec{ + ClientConfig: runtimev1.ClientConfig{ + // Set a fake URL, in test cases where we start the test server the URL will be overridden. + URL: ptr.To("https://127.0.0.1/"), + CABundle: testcerts.CACert, + }, + NamespaceSelector: &metav1.LabelSelector{}, + }, + Status: runtimev1.ExtensionConfigStatus{ + Handlers: []runtimev1.ExtensionHandler{ + { + Name: "valid-extension", + RequestHook: runtimev1.GroupVersionHook{ + APIVersion: fakev1alpha1.GroupVersion.String(), + Hook: "FakeHook", + }, + TimeoutSeconds: ptr.To[int32](1), + FailurePolicy: ptr.To(runtimev1.FailurePolicyFail), + }, + }, + }, + } + + g := NewWithT(t) + + tmpDir := t.TempDir() + clientCertFile := filepath.Join(tmpDir, "tls.crt") + g.Expect(os.WriteFile(clientCertFile, testcerts.ClientCert, 0600)).To(Succeed()) + clientKeyFile := filepath.Join(tmpDir, "tls.key") + g.Expect(os.WriteFile(clientKeyFile, testcerts.ClientKey, 0600)).To(Succeed()) + + var serverCallCount int + srv := createSecureTestServer(testServerConfig{ + start: true, + responses: map[string]testServerResponse{ + "/*": response(runtimehooksv1.ResponseStatusSuccess), + }, + }, func() { + serverCallCount++ + }) + + // Setup the runtime extension server so it requires client authentication with certificates signed by a given CA. + certpool := x509.NewCertPool() + certpool.AppendCertsFromPEM(testcerts.CACert) + srv.TLS.ClientAuth = tls.RequireAndVerifyClientCert + srv.TLS.ClientCAs = certpool + + srv.StartTLS() + defer srv.Close() + + // Set the URL to the real address of the test server. + validExtensionHandlerWithFailPolicy.Spec.ClientConfig.URL = ptr.To(fmt.Sprintf("https://%s/", srv.Listener.Addr().String())) + + cat := runtimecatalog.New() + _ = fakev1alpha1.AddToCatalog(cat) + _ = fakev1alpha2.AddToCatalog(cat) + fakeClient := fake.NewClientBuilder(). + WithObjects(ns). + Build() + + c := New(Options{ + // Add client authentication credentials to the client + CertFile: clientCertFile, + KeyFile: clientKeyFile, + Catalog: cat, + Registry: registry([]runtimev1.ExtensionConfig{validExtensionHandlerWithFailPolicy}), + Client: fakeClient, + }) + + obj := &clusterv1.Cluster{ + ObjectMeta: metav1.ObjectMeta{ + Name: "cluster", + Namespace: "foo", + }, + } + // Call once without caching. + err := c.CallExtension(context.Background(), fakev1alpha1.FakeHook, obj, "valid-extension", &fakev1alpha1.FakeRequest{}, &fakev1alpha1.FakeResponse{}) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(serverCallCount).To(Equal(1)) +} + func cacheKeyFunc(extensionName, extensionConfigResourceVersion string, request runtimehooksv1.RequestObject) string { // Note: extensionName is identical to the value of the name parameter passed into CallExtension. s := fmt.Sprintf("%s-%s", extensionName, extensionConfigResourceVersion) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/main.go new/clusterctl-1.10.5/main.go --- old/clusterctl-1.10.4/main.go 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/main.go 2025-08-13 20:11:08.000000000 +0200 @@ -110,6 +110,8 @@ webhookCertDir string webhookCertName string webhookKeyName string + runtimeExtensionCertFile string + runtimeExtensionKeyFile string healthAddr string managerOptions = flags.ManagerOptions{} logOptions = logs.NewOptions() @@ -259,10 +261,16 @@ "Webhook cert dir.") fs.StringVar(&webhookCertName, "webhook-cert-name", "tls.crt", - "Webhook cert name.") + "Name of the file for webhook's server certificate; the file must be placed under webhook-cert-dir.") fs.StringVar(&webhookKeyName, "webhook-key-name", "tls.key", - "Webhook key name.") + "Name of the file for webhook's server key; the file must be placed under webhook-cert-dir.") + + fs.StringVar(&runtimeExtensionCertFile, "runtime-extension-client-cert-file", "", + "Path of the PEM-encoded client certificate to be used when calling runtime extensions.") + + fs.StringVar(&runtimeExtensionKeyFile, "runtime-extension-client-key-file", "", + "Path of the PEM-encoded client key to be used when calling runtime extensions.") fs.StringVar(&healthAddr, "health-addr", ":9440", "The address the health endpoint binds to.") @@ -531,6 +539,8 @@ if feature.Gates.Enabled(feature.RuntimeSDK) { // This is the creation of the runtimeClient for the controllers, embedding a shared catalog and registry instance. runtimeClient = internalruntimeclient.New(internalruntimeclient.Options{ + CertFile: runtimeExtensionCertFile, + KeyFile: runtimeExtensionKeyFile, Catalog: catalog, Registry: runtimeregistry.New(), Client: mgr.GetClient(), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/netlify.toml new/clusterctl-1.10.5/netlify.toml --- old/clusterctl-1.10.4/netlify.toml 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/netlify.toml 2025-08-13 20:11:08.000000000 +0200 @@ -4,7 +4,7 @@ publish = "docs/book/book" [build.environment] - GO_VERSION = "1.23.10" + GO_VERSION = "1.23.12" # Standard Netlify redirects [[redirects]] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/test/e2e/data/kubetest/dualstack.yaml new/clusterctl-1.10.5/test/e2e/data/kubetest/dualstack.yaml --- old/clusterctl-1.10.4/test/e2e/data/kubetest/dualstack.yaml 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/test/e2e/data/kubetest/dualstack.yaml 2025-08-13 20:11:08.000000000 +0200 @@ -1,5 +1,8 @@ ginkgo.focus: \[Feature\:IPv6DualStack\] -ginkgo.skip: \[Feature\:SCTPConnectivity\] +# Skipping Test: +# [Feature:IPv6DualStack] Granular Checks: Services Secondary IP Family [LinuxOnly] should function for service endpoints using hostNetwork +# because it is failing in the EKS cluster. +ginkgo.skip: \[Feature\:SCTPConnectivity\]|\[LinuxOnly\]\s+should\s+function\s+for\s+service\s+endpoints\s+using\s+hostNetwork disable-log-dump: true # ginkgo.progress flag is deprecated but its still used when # we run kubetest on K8s versions <= v1.26, we have to keep it diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clusterctl-1.10.4/test/go.sum new/clusterctl-1.10.5/test/go.sum --- old/clusterctl-1.10.4/test/go.sum 2025-07-08 15:33:27.000000000 +0200 +++ new/clusterctl-1.10.5/test/go.sum 2025-08-13 20:11:08.000000000 +0200 @@ -48,8 +48,8 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/coredns/caddy v1.1.1 h1:2eYKZT7i6yxIfGP3qLJoJ7HAsDJqYB+X68g4NYjSrE0= github.com/coredns/caddy v1.1.1/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4= -github.com/coredns/corefile-migration v1.0.26 h1:xiiEkVB1Dwolb24pkeDUDBfygV9/XsOSq79yFCrhptY= -github.com/coredns/corefile-migration v1.0.26/go.mod h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY= +github.com/coredns/corefile-migration v1.0.27 h1:WIIw5sU0LfGgoGnhdrYdVcto/aWmJoGA/C62iwkU0JM= +github.com/coredns/corefile-migration v1.0.27/go.mod h1:56DPqONc3njpVPsdilEnfijCwNGC3/kTJLl7i7SPavY= github.com/coreos/go-semver v0.1.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= ++++++ clusterctl.obsinfo ++++++ --- /var/tmp/diff_new_pack.UmFxlN/_old 2025-08-20 13:27:58.535060048 +0200 +++ /var/tmp/diff_new_pack.UmFxlN/_new 2025-08-20 13:27:58.555060879 +0200 @@ -1,5 +1,5 @@ name: clusterctl -version: 1.10.4 -mtime: 1751981607 -commit: 737edc88faed28b0bd81f6768ebe2ea276fdbe3a +version: 1.10.5 +mtime: 1755108668 +commit: df6c089725748546092add8d89e96650dce1de1d ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/clusterctl/vendor.tar.gz /work/SRC/openSUSE:Factory/.clusterctl.new.29662/vendor.tar.gz differ: char 134, line 2