From 9fde1c6a85c1390c7be7705385eb99b3ebc8e06a Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Sat, 17 Aug 2024 20:43:53 -0400 Subject: [PATCH] Narrow merge interface to merging the same types --- .../src/k8s.io/client-go/tools/clientcmd/client_config.go | 8 ++++---- staging/src/k8s.io/client-go/tools/clientcmd/merge.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go b/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go index a47e701c1fe..cd0a8649b18 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go @@ -508,7 +508,7 @@ func (config *DirectClientConfig) getContext() (clientcmdapi.Context, error) { return clientcmdapi.Context{}, fmt.Errorf("context %q does not exist", contextName) } if config.overrides != nil { - if err := merge(mergedContext, config.overrides.Context); err != nil { + if err := merge(mergedContext, &config.overrides.Context); err != nil { return clientcmdapi.Context{}, err } } @@ -530,7 +530,7 @@ func (config *DirectClientConfig) getAuthInfo() (clientcmdapi.AuthInfo, error) { return clientcmdapi.AuthInfo{}, fmt.Errorf("auth info %q does not exist", authInfoName) } if config.overrides != nil { - if err := merge(mergedAuthInfo, config.overrides.AuthInfo); err != nil { + if err := merge(mergedAuthInfo, &config.overrides.AuthInfo); err != nil { return clientcmdapi.AuthInfo{}, err } } @@ -545,7 +545,7 @@ func (config *DirectClientConfig) getCluster() (clientcmdapi.Cluster, error) { mergedClusterInfo := clientcmdapi.NewCluster() if config.overrides != nil { - if err := merge(mergedClusterInfo, config.overrides.ClusterDefaults); err != nil { + if err := merge(mergedClusterInfo, &config.overrides.ClusterDefaults); err != nil { return clientcmdapi.Cluster{}, err } } @@ -557,7 +557,7 @@ func (config *DirectClientConfig) getCluster() (clientcmdapi.Cluster, error) { return clientcmdapi.Cluster{}, fmt.Errorf("cluster %q does not exist", clusterInfoName) } if config.overrides != nil { - if err := merge(mergedClusterInfo, config.overrides.ClusterInfo); err != nil { + if err := merge(mergedClusterInfo, &config.overrides.ClusterInfo); err != nil { return clientcmdapi.Cluster{}, err } } diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/merge.go b/staging/src/k8s.io/client-go/tools/clientcmd/merge.go index 9fdf6e3a025..61590faa1f3 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/merge.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/merge.go @@ -24,6 +24,6 @@ import ( // - non-pointer struct fields are recursively merged // - maps are shallow merged with src keys taking priority over dst // - non-zero src fields encountered during recursion that are not maps or structs overwrite and recursion stops -func merge(dst, src any) error { +func merge[T any](dst, src *T) error { return mergo.Merge(dst, src, mergo.WithOverride) }