Documentation ¶
Overview ¶
Package manifest provides functions for going between in-memory k8s objects (unstructured.Unstructured) and their JSON or YAML representations.
Index ¶
- Constants
- func AllObjectHashes(m string) map[string]bool
- func DefaultObjectOrder() func(o *K8sObject) int
- func FromHash(hash string) (kind, namespace, name string)
- func Hash(kind, namespace, name string) string
- func HashNameKind(kind, name string) string
- func ParseK8SYAMLToIstioOperator(yml string) (*v1alpha1.IstioOperator, *schema.GroupVersionKind, error)
- type K8sObject
- func (o *K8sObject) Container(name string) map[string]any
- func (o *K8sObject) Equal(other *K8sObject) bool
- func (o *K8sObject) FullName() string
- func (o *K8sObject) GroupVersionKind() schema.GroupVersionKind
- func (o *K8sObject) Hash() string
- func (o *K8sObject) HashNameKind() string
- func (o *K8sObject) JSON() ([]byte, error)
- func (o *K8sObject) ResolveK8sConflict() *K8sObject
- func (o *K8sObject) Unstructured() map[string]any
- func (o *K8sObject) UnstructuredObject() *unstructured.Unstructured
- func (o *K8sObject) Valid() bool
- func (o *K8sObject) Version() string
- func (o *K8sObject) YAML() ([]byte, error)
- func (o *K8sObject) YAMLDebugString() string
- type K8sObjects
- func KindObjects(objs K8sObjects, kind string) K8sObjects
- func ObjectsNotInLists(objects K8sObjects, lists ...K8sObjects) K8sObjects
- func ParseK8sObjectsFromYAMLManifest(manifest string) (K8sObjects, error)
- func ParseK8sObjectsFromYAMLManifestFailOption(manifest string, failOnError bool) (K8sObjects, error)
- func (os K8sObjects) Keys() []string
- func (os K8sObjects) Sort(score func(o *K8sObject) int)
- func (os K8sObjects) String() string
- func (os K8sObjects) ToMap() map[string]*K8sObject
- func (os K8sObjects) ToNameKindMap() map[string]*K8sObject
- func (os K8sObjects) UnstructuredItems() []unstructured.Unstructured
- func (os K8sObjects) YAMLManifest() (string, error)
Constants ¶
const (
// YAMLSeparator is a separator for multi-document YAML files.
YAMLSeparator = "\n---\n"
)
Variables ¶
This section is empty.
Functions ¶
func AllObjectHashes ¶
AllObjectHashes returns a map with object hashes of all the objects contained in cmm as the keys.
func DefaultObjectOrder ¶
DefaultObjectOrder is default sorting function used to sort k8s objects.
func HashNameKind ¶
HashNameKind returns a unique, insecure hash based on kind and name.
func ParseK8SYAMLToIstioOperator ¶
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.
Types ¶
type K8sObject ¶
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 ¶
func NewK8sObject(u *unstructured.Unstructured, json, yaml []byte) *K8sObject
NewK8sObject creates a new K8sObject and returns a ptr to it.
func ParseJSONToK8sObject ¶
ParseJSONToK8sObject parses JSON to an K8sObject.
func ParseYAMLToK8sObject ¶
ParseYAMLToK8sObject parses YAML to an Object.
func (*K8sObject) Container ¶
Container returns a container subtree for Deployment objects if one is found, or nil otherwise.
func (*K8sObject) GroupVersionKind ¶
func (o *K8sObject) GroupVersionKind() schema.GroupVersionKind
GroupVersionKind returns the GroupVersionKind for the K8sObject
func (*K8sObject) HashNameKind ¶
HashNameKind returns a hash for the K8sObject based on the name and kind only.
func (*K8sObject) JSON ¶
JSON returns a JSON representation of the K8sObject, using an internal cache.
func (*K8sObject) ResolveK8sConflict ¶
ResolveK8sConflict - This method resolves k8s object possible conflicting settings. Which K8sObjects may need such method depends on the type of the K8sObject.
func (*K8sObject) Unstructured ¶
Unstructured exposes the raw object content, primarily for testing
func (*K8sObject) UnstructuredObject ¶
func (o *K8sObject) UnstructuredObject() *unstructured.Unstructured
UnstructuredObject exposes the raw object, primarily for testing
func (*K8sObject) YAML ¶
YAML returns a YAML representation of the K8sObject, using an internal cache.
func (*K8sObject) YAMLDebugString ¶
YAMLDebugString returns a YAML representation of the K8sObject, or an error string if the K8sObject cannot be rendered to YAML.
type K8sObjects ¶
type K8sObjects []*K8sObject
K8sObjects holds a collection of k8s objects, so that we can filter / sequence them
func KindObjects ¶
func KindObjects(objs K8sObjects, kind string) K8sObjects
KindObjects returns the subset of objs with the given kind.
func ObjectsNotInLists ¶
func ObjectsNotInLists(objects K8sObjects, lists ...K8sObjects) K8sObjects
func ParseK8sObjectsFromYAMLManifest ¶
func ParseK8sObjectsFromYAMLManifest(manifest string) (K8sObjects, error)
ParseK8sObjectsFromYAMLManifest returns a K8sObjects representation of manifest.
func ParseK8sObjectsFromYAMLManifestFailOption ¶
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 (K8sObjects) Keys ¶
func (os K8sObjects) Keys() []string
Keys returns a slice with the keys of os.
func (K8sObjects) Sort ¶
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 (K8sObjects) String ¶
func (os K8sObjects) String() string
String implements the Stringer interface.
func (K8sObjects) ToMap ¶
func (os K8sObjects) ToMap() map[string]*K8sObject
ToMap returns a map of K8sObject hash to K8sObject.
func (K8sObjects) ToNameKindMap ¶
func (os K8sObjects) ToNameKindMap() map[string]*K8sObject
ToNameKindMap returns a map of K8sObject name/kind hash to K8sObject.
func (K8sObjects) UnstructuredItems ¶
func (os K8sObjects) UnstructuredItems() []unstructured.Unstructured
UnstructuredItems returns the list of items of unstructured.Unstructured.
func (K8sObjects) YAMLManifest ¶
func (os K8sObjects) YAMLManifest() (string, error)
YAMLManifest returns a YAML representation of K8sObjects os.