Documentation ¶
Overview ¶
Package manifest provides functions for going between in-memory k8s objects (unstructured.Unstructured) and their JSON or YAML representations.
Index ¶
- Constants
- func Hash(kind, namespace, name string) string
- func HashNameKind(kind, name string) string
- func ManifestDiff(a, b string) (string, error)
- func ManifestDiffWithSelectAndIgnore(a, b, selectResources, ignoreResources string) (string, error)
- type K8sObject
- func (o *K8sObject) AddLabels(labels map[string]string)
- func (o *K8sObject) GroupKind() schema.GroupKind
- 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) UnstructuredObject() *unstructured.Unstructured
- func (o *K8sObject) Valid() bool
- func (o *K8sObject) YAML() ([]byte, error)
- func (o *K8sObject) YAMLDebugString() (string, error)
- type K8sObjects
Constants ¶
const (
// YAMLSeparator is a separator for multi-document YAML files.
YAMLSeparator = "\n---\n"
)
Variables ¶
This section is empty.
Functions ¶
func HashNameKind ¶
HashNameKind returns a unique, insecure hash based on kind and name.
func ManifestDiff ¶
func ManifestDiffWithSelectAndIgnore ¶
ManifestDiffWithSelect checks the manifest differences with selected and ignored resources. The selected filter will apply before the ignored filter.
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) AddLabels ¶
AddLabels adds labels to the K8sObject. This method will override the value if there is already label with the same key.
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) UnstructuredObject ¶
func (o *K8sObject) UnstructuredObject() *unstructured.Unstructured
UnstructuredObject exposes the raw object, primarily for testing
func (*K8sObject) Valid ¶
Valid checks returns true if Kind and Name of K8sObject are both not empty.
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 K8sObjectsFromUnstructuredSlice ¶
func K8sObjectsFromUnstructuredSlice(objs []*unstructured.Unstructured) (K8sObjects, error)
K8sObjectsFromUnstructuredSlice returns an Objects ptr type from a slice of Unstructured.
func ParseK8sObjectsFromYAMLManifest ¶
func ParseK8sObjectsFromYAMLManifest(manifest string) (K8sObjects, error)
ParseK8sObjectsFromYAMLManifest returns a K8sObjects represetation of manifest.
func (K8sObjects) JSONManifest ¶
func (os K8sObjects) JSONManifest() (string, error)
JSONManifest returns a JSON representation of K8sObjects 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) 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) YAMLManifest ¶
func (os K8sObjects) YAMLManifest() (string, error)
YAMLManifest returns a YAML representation of K8sObjects os.