Skip to content

Instantly share code, notes, and snippets.

@jeesmon
Created March 25, 2022 18:59
Show Gist options
  • Save jeesmon/945b0a142228aede796e439c088ce9b3 to your computer and use it in GitHub Desktop.
Save jeesmon/945b0a142228aede796e439c088ce9b3 to your computer and use it in GitHub Desktop.
var decUnstructured = yaml.NewDecodingSerializer(unstructured.UnstructuredJSONScheme)
func DecodePodSpec(spec corev1.PodSpec) (*unstructured.Unstructured, error) {
pod := &corev1.Pod{
ObjectMeta: v1.ObjectMeta{
Name: "name",
Namespace: "namespace",
},
Spec: *spec.DeepCopy(),
}
scheme := runtime.NewScheme()
corev1.AddToScheme(scheme)
codec := serializer.NewCodecFactory(scheme).LegacyCodec(corev1.SchemeGroupVersion)
bytes, err := runtime.Encode(codec, pod)
if err != nil {
return nil, err
}
resource := &unstructured.Unstructured{}
_, _, err = decUnstructured.Decode(bytes, nil, resource)
if err != nil {
return nil, err
}
return resource, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment