import "istio.io/istio/operator/pkg/object"
Package manifest provides functions for going between in-memory k8s objects (unstructured.Unstructured) and their JSON or YAML representations.
const ( // YAMLSeparator is a separator for multi-document YAML files. YAMLSeparator = "\n---\n" )
AllObjectHashes returns a map with object hashes of all the objects contained in cmm as the keys.
DefaultObjectOrder is default sorting function used to sort k8s objects.
FromHash parses kind, namespace and name from a hash.
Hash returns a unique, insecure hash based on kind, namespace and name.
HashNameKind returns a unique, insecure hash based on kind and name.
func ParseK8SYAMLToIstioOperator(yml string) (*v1alpha1.IstioOperator, *schema.GroupVersionKind, error)
ParseK8SYAMLToIstioOperator parses a IstioOperator CustomResource YAML string and unmarshals in into an IstioOperatorSpec object. It returns the object and an API group/version with it.
type K8sObject struct { Group string Kind string Name string Namespace string // contains filtered or unexported fields }
K8sObject is an in-memory representation of a k8s object, used for moving between different representations (Unstructured, JSON, YAML) with cached rendering.
func NewK8sObject(u *unstructured.Unstructured, json, yaml []byte) *K8sObject
NewK8sObject creates a new K8sObject and returns a ptr to it.
ParseJSONToK8sObject parses JSON to an K8sObject.
ParseYAMLToK8sObject parses YAML to an Object.
Container returns a container subtree for Deployment objects if one is found, or nil otherwise.
Equal returns true if o and other are both valid and equal to each other.
FullName returns namespace/name of K8s object
func (o *K8sObject) GroupVersionKind() schema.GroupVersionKind
GroupVersionKind returns the GroupVersionKind for the K8sObject
Hash returns a unique hash for the K8sObject
HashNameKind returns a hash for the K8sObject based on the name and kind only.
JSON returns a JSON representation of the K8sObject, using an internal cache.
Unstructured exposes the raw object content, primarily for testing
func (o *K8sObject) UnstructuredObject() *unstructured.Unstructured
UnstructuredObject exposes the raw object, primarily for testing
Valid checks returns true if Kind and Name of K8sObject are both not empty.
Version returns the APIVersion of the K8sObject
YAML returns a YAML representation of the K8sObject, using an internal cache.
YAMLDebugString returns a YAML representation of the K8sObject, or an error string if the K8sObject cannot be rendered to YAML.
K8sObjects holds a collection of k8s objects, so that we can filter / sequence them
func KindObjects(objs K8sObjects, kind string) K8sObjects
KindObjects returns the subset of objs with the given kind.
func ObjectsNotInLists(objects K8sObjects, lists ...K8sObjects) K8sObjects
func ParseK8sObjectsFromYAMLManifest(manifest string) (K8sObjects, error)
ParseK8sObjectsFromYAMLManifest returns a K8sObjects representation of manifest.
func ParseK8sObjectsFromYAMLManifestFailOption(manifest string, failOnError bool) (K8sObjects, error)
ParseK8sObjectsFromYAMLManifestFailOption returns a K8sObjects representation of manifest. Continues parsing when a bad object is found if failOnError is set to false.
func (os K8sObjects) Keys() []string
Keys returns a slice with the keys of os.
func (os K8sObjects) Sort(score func(o *K8sObject) int)
Sort will order the items in K8sObjects in order of score, group, kind, name. The intent is to have a deterministic ordering in which K8sObjects are applied.
func (os K8sObjects) String() string
String implements the Stringer interface.
func (os K8sObjects) ToMap() map[string]*K8sObject
ToMap returns a map of K8sObject hash to K8sObject.
func (os K8sObjects) ToNameKindMap() map[string]*K8sObject
ToNameKindMap returns a map of K8sObject name/kind hash to K8sObject.
func (os K8sObjects) UnstructuredItems() []unstructured.Unstructured
UnstructuredItems returns the list of items of unstructured.Unstructured.
func (os K8sObjects) YAMLManifest() (string, error)
YAMLManifest returns a YAML representation of K8sObjects os.
Package object imports 15 packages (graph) and is imported by 7 packages. Updated 2020-10-29. Refresh now. Tools for package owners.