Documentation ¶
Overview ¶
Package config is a common, top-level folder for aggregating Istio-wide config related libraries and utilities. More details can be found here: https://docs.google.com/document/d/1atY5vDHy5sXJP7qIaFQS3ixQZvOxUciPgULH5qTPX_8/
Index ¶
- func ApplyJSON(s Spec, js string) error
- func ApplyJSONStrict(s Spec, js string) error
- func ApplyYAML(s Spec, yml string) error
- func CanonicalGroup(group string) string
- func DeepCopy(s any) any
- func Key(grp, ver, typ, name, namespace string) string
- func LabelsInRevision(lbls map[string]string, rev string) bool
- func NamespacedName[T Namer](o T) kubetypes.NamespacedName
- func ObjectInRevision(o *Config, rev string) bool
- func PilotConfigToResource(c *Config) (*mcp.Resource, error)
- func ToJSON(s Spec) ([]byte, error)
- func ToMap(s Spec) (map[string]any, error)
- func ToPrettyJSON(s Spec) ([]byte, error)
- func ToProto(s Spec) (*anypb.Any, error)
- func ToRaw(s Spec) (json.RawMessage, error)
- type Config
- type GroupVersionKind
- type Meta
- type Namer
- type PatchFunc
- type Spec
- type Status
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyJSONStrict ¶
func CanonicalGroup ¶
func NamespacedName ¶
func NamespacedName[T Namer](o T) kubetypes.NamespacedName
func ObjectInRevision ¶
func PilotConfigToResource ¶
Convert from model.Config, which has no associated proto, to MCP Resource proto. TODO: define a proto matching Config - to avoid useless superficial conversions.
func ToPrettyJSON ¶
Types ¶
type Config ¶
type Config struct { Meta // Spec holds the configuration object as a gogo protobuf message Spec Spec // Status holds long-running status. Status Status }
Config is a configuration unit consisting of the type of configuration, the key identifier that is unique per type, and the content represented as a protobuf message.
func (Config) GetCreationTimestamp ¶
func (Config) GetNamespace ¶
func (Config) NamespacedName ¶
func (c Config) NamespacedName() kubetypes.NamespacedName
type GroupVersionKind ¶
type GroupVersionKind struct { Group string `json:"group"` Version string `json:"version"` Kind string `json:"kind"` }
func FromKubernetesGVK ¶
func FromKubernetesGVK(gvk schema.GroupVersionKind) GroupVersionKind
func (GroupVersionKind) CanonicalGroup ¶
func (g GroupVersionKind) CanonicalGroup() string
CanonicalGroup returns the group with defaulting applied. This means an empty group will be treated as "core", following Kubernetes API standards
func (GroupVersionKind) GroupVersion ¶
func (g GroupVersionKind) GroupVersion() string
GroupVersion returns the group/version similar to what would be found in the apiVersion field of a Kubernetes resource.
func (GroupVersionKind) Kubernetes ¶
func (g GroupVersionKind) Kubernetes() schema.GroupVersionKind
Kubernetes returns the same GVK, using the Kubernetes object type
func (GroupVersionKind) String ¶
func (g GroupVersionKind) String() string
type Meta ¶
type Meta struct { // GroupVersionKind is a short configuration name that matches the content message type // (e.g. "route-rule") GroupVersionKind GroupVersionKind `json:"type,omitempty"` // UID UID string `json:"uid,omitempty"` // Name is a unique immutable identifier in a namespace Name string `json:"name,omitempty"` // Namespace defines the space for names (optional for some types), // applications may choose to use namespaces for a variety of purposes // (security domains, fault domains, organizational domains) Namespace string `json:"namespace,omitempty"` // Domain defines the suffix of the fully qualified name past the namespace. // Domain is not a part of the unique key unlike name and namespace. Domain string `json:"domain,omitempty"` // Map of string keys and values that can be used to organize and categorize // (scope and select) objects. Labels map[string]string `json:"labels,omitempty"` // Annotations is an unstructured key value map stored with a resource that may be // set by external tools to store and retrieve arbitrary metadata. They are not // queryable and should be preserved when modifying objects. Annotations map[string]string `json:"annotations,omitempty"` // ResourceVersion is an opaque identifier for tracking updates to the config registry. // The implementation may use a change index or a commit log for the revision. // The config client should not make any assumptions about revisions and rely only on // exact equality to implement optimistic concurrency of read-write operations. // // The lifetime of an object of a particular revision depends on the underlying data store. // The data store may compactify old revisions in the interest of storage optimization. // // An empty revision carries a special meaning that the associated object has // not been stored and assigned a revision. ResourceVersion string `json:"resourceVersion,omitempty"` // CreationTimestamp records the creation time CreationTimestamp time.Time `json:"creationTimestamp,omitempty"` // OwnerReferences allows specifying in-namespace owning objects. OwnerReferences []metav1.OwnerReference `json:"ownerReferences,omitempty"` // A sequence number representing a specific generation of the desired state. Populated by the system. Read-only. Generation int64 `json:"generation,omitempty"` }
Meta is metadata attached to each configuration unit. The revision is optional, and if provided, identifies the last update operation on the object.
func (*Meta) ToObjectMeta ¶
func (meta *Meta) ToObjectMeta() metav1.ObjectMeta
type PatchFunc ¶
PatchFunc provides the cached config as a base for modification. Only diff the between the cfg parameter and the returned Config will be applied.
Directories ¶
Path | Synopsis |
---|---|
Package resource contains core abstract types for representing configuration resources.
|
Package resource contains core abstract types for representing configuration resources. |
nolint: lll
|
nolint: lll |