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

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func ApplyJSON

    func ApplyJSON(s Spec, js string) error

    func ApplyJSONStrict

    func ApplyJSONStrict(s Spec, js string) error

    func ApplyYAML

    func ApplyYAML(s Spec, yml string) error

    func DeepCopy

    func DeepCopy(s interface{}) interface{}

    func Key

    func Key(typ, name, namespace string) string

      Key function for the configuration objects

      func ToJSON

      func ToJSON(s Spec) ([]byte, error)

      func ToMap

      func ToMap(s Spec) (map[string]interface{}, error)

      func ToProtoGogo

      func ToProtoGogo(s Spec) (*gogotypes.Any, error)

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

        func (c Config) DeepCopy() Config

        type GroupVersionKind

        type GroupVersionKind struct {
        	Group   string `json:"group"`
        	Version string `json:"version"`
        	Kind    string `json:"kind"`
        }

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

              func (meta *Meta) Key() string

                Key is the unique identifier for a configuration object TODO: this is *not* unique - needs the version and group

                type PatchFunc

                type PatchFunc func(cfg Config) (Config, kubetypes.PatchType)

                  PatchFunc provides the cached config as a base for modification. Only diff the between the cfg parameter and the returned Config will be applied.

                  type Spec

                  type Spec interface{}

                    Spec defines the spec for the config. In order to use below helper methods, this must be one of: * golang/protobuf Message * gogo/protobuf Message * Able to marshal/unmarshal using json

                    type Status

                    type Status interface{}

                    Source Files

                    Directories

                    Path Synopsis
                    Package resource contains core abstract types for representing configuration resources.
                    Package resource contains core abstract types for representing configuration resources.
                    Code generated for package schema by go-bindata DO NOT EDIT.
                    Code generated for package schema by go-bindata DO NOT EDIT.
                    ast
                    gvk
                    nolint: lll
                    nolint: lll