mirror of
https://github.com/kubernetes/client-go.git
synced 2025-07-19 17:39:56 +00:00
expose FieldsToSet and SetToFields
Kubernetes-commit: a338fff435c35a4da2556a8f4c4ab059c98e909c
This commit is contained in:
parent
aa892ab1ac
commit
049ba69f2f
@ -1,13 +1,12 @@
|
||||
package csaupgrade
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/meta"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"sigs.k8s.io/structured-merge-diff/v4/fieldpath"
|
||||
"k8s.io/apiserver/pkg/endpoints/handlers/fieldmanager"
|
||||
)
|
||||
|
||||
// Upgrades the Manager information for fields managed with CSA
|
||||
@ -57,18 +56,18 @@ func UpgradeManagedFields(
|
||||
csaManager := managedFields[csaManagerIndex]
|
||||
|
||||
// Union the csa manager with the existing SSA manager
|
||||
ssaFieldSet, err := fieldsToSet(*ssaManager.FieldsV1)
|
||||
ssaFieldSet, err := fieldmanager.FieldsToSet(*ssaManager.FieldsV1)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert fields to set: %w", err)
|
||||
}
|
||||
|
||||
csaFieldSet, err := fieldsToSet(*csaManager.FieldsV1)
|
||||
csaFieldSet, err := fieldmanager.FieldsToSet(*csaManager.FieldsV1)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to convert fields to set: %w", err)
|
||||
}
|
||||
|
||||
combinedFieldSet := ssaFieldSet.Union(&csaFieldSet)
|
||||
combinedFieldSetEncoded, err := setToFields(*combinedFieldSet)
|
||||
combinedFieldSetEncoded, err := fieldmanager.SetToFields(*combinedFieldSet)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to encode field set: %w", err)
|
||||
}
|
||||
@ -143,15 +142,3 @@ func filter[T any](
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// FieldsToSet creates a set paths from an input trie of fields
|
||||
func fieldsToSet(f metav1.FieldsV1) (s fieldpath.Set, err error) {
|
||||
err = s.FromJSON(bytes.NewReader(f.Raw))
|
||||
return s, err
|
||||
}
|
||||
|
||||
// SetToFields creates a trie of fields from an input set of paths
|
||||
func setToFields(s fieldpath.Set) (f metav1.FieldsV1, err error) {
|
||||
f.Raw, err = s.ToJSON()
|
||||
return f, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user