Skip to main content
Glama
unstructured.go1.87 kB
package utils import ( "fmt" "sort" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "sigs.k8s.io/yaml" ) func SortByCreationTime(items []*unstructured.Unstructured) []*unstructured.Unstructured { sort.Slice(items, func(i, j int) bool { ti := items[i].GetCreationTimestamp() tj := items[j].GetCreationTimestamp() return ti.After(tj.Time) }) return items } // RemoveManagedFields 删除 unstructured.Unstructured 对象中的 metadata.managedFields 字段 func RemoveManagedFields(obj *unstructured.Unstructured) { // 获取 metadata metadata, found, err := unstructured.NestedMap(obj.Object, "metadata") if err != nil || !found { return } // 删除 managedFields delete(metadata, "managedFields") // 更新 metadata err = unstructured.SetNestedMap(obj.Object, metadata, "metadata") if err != nil { return } } // ConvertUnstructuredToYAML 将 Unstructured 对象转换为 YAML 字符串 func ConvertUnstructuredToYAML(obj *unstructured.Unstructured) (string, error) { // Marshal Unstructured 对象为 JSON jsonBytes, err := obj.MarshalJSON() if err != nil { return "", fmt.Errorf("无法序列化 Unstructured 对象为 JSON: %v", err) } // 将 JSON 转换为 YAML yamlBytes, err := yaml.JSONToYAML(jsonBytes) if err != nil { return "", fmt.Errorf("无法将 JSON 转换为 YAML: %v", err) } return string(yamlBytes), nil } // AddOrUpdateAnnotations 添加或更新 annotations func AddOrUpdateAnnotations(item *unstructured.Unstructured, newAnnotations map[string]string) { // 获取现有的 annotations annotations := item.GetAnnotations() if annotations == nil { // 如果不存在,初始化一个 map annotations = make(map[string]string) } // 追加或覆盖新数据 for key, value := range newAnnotations { annotations[key] = value } // 设置回对象 item.SetAnnotations(annotations) }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/weibaohui/kom'

If you have feedback or need assistance with the MCP directory API, please join our Discord server