object

package
v0.0.0-...-6d781b4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package manifest provides functions for going between in-memory k8s objects (unstructured.Unstructured) and their JSON or YAML representations.

Index

Constants

View Source
const (
	// YAMLSeparator is a separator for multi-document YAML files.
	YAMLSeparator = "\n---\n"
)

Variables

This section is empty.

Functions

func FromHash

func FromHash(hash string) (kind, namespace, name string)

FromHash parses kind, namespace and name from a hash.

func Hash

func Hash(kind, namespace, name string) string

Hash returns a unique, insecure hash based on kind, namespace and name.

func HashNameKind

func HashNameKind(kind, name string) string

HashNameKind returns a unique, insecure hash based on kind and name.

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

func ParseJSONToK8sObject(json []byte) (*K8sObject, error)

ParseJSONToK8sObject parses JSON to an K8sObject.

func ParseYAMLToK8sObject

func ParseYAMLToK8sObject(yaml []byte) (*K8sObject, error)

ParseYAMLToK8sObject parses YAML to an Object.

func (*K8sObject) Container

func (o *K8sObject) Container(name string) map[string]any

Container returns a container subtree for Deployment objects if one is found, or nil otherwise.

func (*K8sObject) Equal

func (o *K8sObject) Equal(other *K8sObject) bool

Equal returns true if o and other are both valid and equal to each other.

func (*K8sObject) FullName

func (o *K8sObject) FullName() string

FullName returns namespace/name of K8s object

func (*K8sObject) GroupVersionKind

func (o *K8sObject) GroupVersionKind() schema.GroupVersionKind

GroupVersionKind returns the GroupVersionKind for the K8sObject

func (*K8sObject) Hash

func (o *K8sObject) Hash() string

Hash returns a unique hash for the K8sObject

func (*K8sObject) HashNameKind

func (o *K8sObject) HashNameKind() string

HashNameKind returns a hash for the K8sObject based on the name and kind only.

func (*K8sObject) JSON

func (o *K8sObject) JSON() ([]byte, error)

JSON returns a JSON representation of the K8sObject, using an internal cache.

func (*K8sObject) ResolveK8sConflict

func (o *K8sObject) ResolveK8sConflict() *K8sObject

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

func (o *K8sObject) Unstructured() map[string]any

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) Valid

func (o *K8sObject) Valid() bool

Valid checks returns true if Kind of K8sObject is not empty.

func (*K8sObject) Version

func (o *K8sObject) Version() string

Version returns the APIVersion of the K8sObject

func (*K8sObject) YAML

func (o *K8sObject) YAML() ([]byte, error)

YAML returns a YAML representation of the K8sObject, using an internal cache.

func (*K8sObject) YAMLDebugString

func (o *K8sObject) YAMLDebugString() string

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 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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL