# 일반적인 gopkg.in/yaml.v2 패키지를 사용시
yamlDeployment, err := yaml.Marshal(deployment)
# string(yamlDeployment) 결과를 보면
# 다음과 같이 cpu 리소스등의 값이 DecimalSI 포맷이라고만 나오고 정확한 값이 표시되지 않는다.
spec -> template -> spec -> containers -> resources
limits:
cpu:
format: DecimalSI
requests:
cpu:
format: DecimalSI
# pod 나 deployment 는 k8s apimachinery 패키지의 NewYAMLSerializer 를 사용하면 된다.
import k8sJson "k8s.io/apimachinery/pkg/runtime/serializer/json"
e := k8sJson.NewYAMLSerializer(k8sJson.DefaultMetaFactory, nil, nil)
yamlDeployment := new(bytes.Buffer)
err = e.Encode(deployment, yamlDeployment)
# yamlDeployment.String() 결과를 보면 다음과 같이 값이 잘 표시된다.
limits:
cpu: 2500m
requests:
cpu: "1"