mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-20 13:42:23 +00:00
111 lines
2.2 KiB
Go
111 lines
2.2 KiB
Go
// Copyright 2019 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package status_test
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
|
. "sigs.k8s.io/kustomize/kstatus/status"
|
|
"sigs.k8s.io/yaml"
|
|
)
|
|
|
|
func ExampleCompute() {
|
|
deploymentManifest := `
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: test
|
|
generation: 1
|
|
namespace: qual
|
|
status:
|
|
observedGeneration: 1
|
|
updatedReplicas: 1
|
|
readyReplicas: 1
|
|
availableReplicas: 1
|
|
replicas: 1
|
|
conditions:
|
|
- type: Progressing
|
|
status: "True"
|
|
reason: NewReplicaSetAvailable
|
|
- type: Available
|
|
status: "True"
|
|
`
|
|
deployment := yamlManifestToUnstructured(deploymentManifest)
|
|
|
|
res, err := Compute(deployment)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
fmt.Println(res.Status)
|
|
// Output:
|
|
// Current
|
|
}
|
|
|
|
func ExampleAugment() {
|
|
deploymentManifest := `
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: test
|
|
generation: 1
|
|
namespace: qual
|
|
status:
|
|
observedGeneration: 1
|
|
updatedReplicas: 1
|
|
readyReplicas: 1
|
|
availableReplicas: 1
|
|
replicas: 1
|
|
conditions:
|
|
- type: Progressing
|
|
status: "True"
|
|
reason: NewReplicaSetAvailable
|
|
- type: Available
|
|
status: "True"
|
|
`
|
|
deployment := yamlManifestToUnstructured(deploymentManifest)
|
|
|
|
err := Augment(deployment)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
b, err := yaml.Marshal(deployment.Object)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
fmt.Println(string(b))
|
|
// Output:
|
|
// apiVersion: apps/v1
|
|
// kind: Deployment
|
|
// metadata:
|
|
// generation: 1
|
|
// name: test
|
|
// namespace: qual
|
|
// status:
|
|
// availableReplicas: 1
|
|
// conditions:
|
|
// - reason: NewReplicaSetAvailable
|
|
// status: "True"
|
|
// type: Progressing
|
|
// - status: "True"
|
|
// type: Available
|
|
// observedGeneration: 1
|
|
// readyReplicas: 1
|
|
// replicas: 1
|
|
// updatedReplicas: 1
|
|
}
|
|
|
|
func yamlManifestToUnstructured(manifest string) *unstructured.Unstructured {
|
|
jsonManifest, err := yaml.YAMLToJSON([]byte(manifest))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
resource, _, err := unstructured.UnstructuredJSONScheme.Decode(jsonManifest, nil, nil)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
return resource.(*unstructured.Unstructured)
|
|
}
|