Narrow merge interface to merging the same types

This commit is contained in:
Jordan Liggitt 2024-08-17 20:43:53 -04:00
parent 3b3886a450
commit 9fde1c6a85
No known key found for this signature in database
2 changed files with 5 additions and 5 deletions

View File

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

View File

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