Documentation ¶
Index ¶
- Constants
- func GetCiliumKeyFrom(extKey string) string
- func GetExtendedKeyFrom(str string) string
- func LabelSliceSHA256Sum(labels []*Label) (string, error)
- type Label
- func (l *Label) DeepCopy() *Label
- func (l *Label) Equals(b *Label) bool
- func (l *Label) GetExtendedKey() string
- func (l *Label) IsAllLabel() bool
- func (l *Label) IsAnySource() bool
- func (l *Label) IsValid() bool
- func (l *Label) Matches(target *Label) bool
- func (l *Label) String() string
- func (l *Label) UnmarshalJSON(data []byte) error
- type LabelArray
- type LabelPrefix
- type LabelPrefixCfg
- type Labels
- func (l Labels) AppendPrefixInKey(prefix string) Labels
- func (l Labels) DeepCopy() Labels
- func (l Labels) DeleteMarked() bool
- func (l Labels) GetModel() []string
- func (l Labels) MarkAllForDeletion()
- func (l Labels) MergeLabels(from Labels)
- func (l Labels) SHA256Sum() string
- func (l Labels) ToSlice() []*Label
- type OpLabels
Constants ¶
const ( // IDNameAll is a special label which matches all labels. IDNameAll = "all" // IDNameHost is the label used for the hostname ID. IDNameHost = "host" // IDNameWorld is the label used for the world ID. IDNameWorld = "world" )
const ( // LabelSourceUnspec is a label with unspecified source LabelSourceUnspec = "unspec" // LabelSourceAny is a label that matches any source LabelSourceAny = "any" // LabelSourceK8s is a label imported from Kubernetes LabelSourceK8s = "k8s" // LabelSourceMesos is a label imported from Mesos LabelSourceMesos = "mesos" // LabelSourceK8sKeyPrefix is prefix of a Kubernetes label LabelSourceK8sKeyPrefix = LabelSourceK8s + "." // LabelSourceContainer is a label imported from the container runtime LabelSourceContainer = "container" // LabelSourceReserved is the label source for reserved types. LabelSourceReserved = "reserved" // LabelSourceReservedKeyPrefix is the prefix of a reserved label LabelSourceReservedKeyPrefix = LabelSourceReserved + "." )
const (
// LPCfgFileVersion represents the version of a Label Prefix Configuration File
LPCfgFileVersion = 1
)
Variables ¶
This section is empty.
Functions ¶
func GetCiliumKeyFrom ¶ added in v0.9.0
GetCiliumKeyFrom returns the label's source and key from the an extended key in the format SOURCE:KEY.
func GetExtendedKeyFrom ¶ added in v0.9.0
GetExtendedKeyFrom returns the extended key of a label string. For example: `k8s:foo=bar` returns `k8s.foo` `container:foo=bar` returns `container.foo` `foo=bar` returns `any.foo=bar`
func LabelSliceSHA256Sum ¶
LabelSliceSHA256Sum returns SHA256 checksum from the labels.
Types ¶
type Label ¶
type Label struct { Key string `json:"key"` Value string `json:"value,omitempty"` // Source can be one of the values present in const.go (e.g.: LabelSourceContainer) Source string `json:"source"` // Mark element to be used to find unused labels in lists DeletionMark bool `json:"-"` }
Label is the cilium's representation of a container label.
func NewLabel ¶
NewLabel returns a new label from the given key, value and source. If source is empty, the default value will be LabelSourceUnspec. If key starts with '$', the source will be overwritten with LabelSourceReserved. If key contains ':', the value before ':' will be used as source if given source is empty, otherwise the value before ':' will be deleted and unused.
func ParseLabel ¶
ParseLabel returns the label representation of the given string. The str should be in the form of Source:Key=Value or Source:Key if Value is empty. It also parses short forms, for example: $host will be Label{Key: "host", Source: "reserved", Value: ""}.
func ParseSelectLabel ¶ added in v0.10.0
ParseSelectLabel returns a selecting label representation of the given string. Unlike ParseLabel, if source is unspecified, the source defaults to LabelSourceAny
func (*Label) Equals ¶
Equals returns true if source, AbsoluteKey() and Value are equal and false otherwise.
func (*Label) GetExtendedKey ¶ added in v0.9.0
GetExtendedKey returns the key of a label with the source encoded.
func (*Label) IsAllLabel ¶
IsAllLabel returns true if the label is reserved and matches with IDNameAll.
func (*Label) IsAnySource ¶ added in v0.9.0
IsAnySource return if the label was set with source "any".
func (*Label) String ¶
String returns the string representation of Label in the for of Source:Key=Value or Source:Key if Value is empty.
func (*Label) UnmarshalJSON ¶
UnmarshalJSON TODO create better explanation about unmarshall with examples
type LabelArray ¶ added in v0.9.0
type LabelArray []*Label
LabelArray is an array of labels forming a set
func NewSelectLabelArrayFromModel ¶ added in v0.10.0
func NewSelectLabelArrayFromModel(base []string) LabelArray
NewSelectLabelArrayFromModel parses a slice of strings and converts them into a an array of selecg labels.
func ParseLabelArray ¶ added in v0.9.0
func ParseLabelArray(labels ...string) LabelArray
ParseLabelArray parses a list of labels and returns a LabelArray
func ParseLabelArrayFromArray ¶ added in v0.9.0
func ParseLabelArrayFromArray(base []string) LabelArray
ParseLabelArrayFromArray converts an array of strings as labels and returns a LabelArray
func ParseSelectLabelArray ¶ added in v0.10.0
func ParseSelectLabelArray(labels ...string) LabelArray
ParseSelectLabelArray parses a list of select labels and returns a LabelArray
func ParseSelectLabelArrayFromArray ¶ added in v0.10.0
func ParseSelectLabelArrayFromArray(base []string) LabelArray
ParseSelectLabelArrayFromArray converts an array of strings as select labels and returns a LabelArray
func (LabelArray) Contains ¶ added in v0.9.0
func (ls LabelArray) Contains(needed LabelArray) bool
Contains returns true if all ls contains all the labels in needed. If needed contains no labels, Contains() will always return true
func (LabelArray) Get ¶ added in v0.9.0
func (ls LabelArray) Get(key string) string
Get returns the value for the provided key. Implementation of the k8s.io/apimachinery/pkg/labels.Labels interface.
func (LabelArray) Has ¶ added in v0.9.0
func (ls LabelArray) Has(key string) bool
Has returns whether the provided key exists. Implementation of the k8s.io/apimachinery/pkg/labels.Labels interface.
func (LabelArray) Lacks ¶ added in v0.9.0
func (ls LabelArray) Lacks(needed LabelArray) LabelArray
Lacks is identical to Contains but returns all missing labels
type LabelPrefix ¶
type LabelPrefix struct { // Ignore if true will cause this prefix to be ignored insted of being accepted Ignore bool `json:"invert"` Prefix string `json:"prefix"` Source string `json:"source"` // contains filtered or unexported fields }
LabelPrefix is the cilium's representation of a container label.
func (LabelPrefix) String ¶
func (p LabelPrefix) String() string
String returns a human readable representation of the LabelPrefix
type LabelPrefixCfg ¶
type LabelPrefixCfg struct { Version int `json:"version"` LabelPrefixes []*LabelPrefix `json:"valid-prefixes"` // contains filtered or unexported fields }
LabelPrefixCfg is the label prefix configuration to filter labels of started containers.
func ParseLabelPrefixCfg ¶ added in v0.9.0
func ParseLabelPrefixCfg(prefixes []string, file string) (*LabelPrefixCfg, error)
ParseLabelPrefixCfg parses valid label prefixes from a file and from a slice of valid prefixes. Both are optional. If both are provided, both list are appended together.
func (*LabelPrefixCfg) FilterLabels ¶
func (cfg *LabelPrefixCfg) FilterLabels(lbls Labels) (identityLabels, informationLabels Labels)
FilterLabels returns Labels from the given labels that have the same source and the same prefix as one of lpc valid prefixes, as well as labels that do not match the aforementioned filtering criteria.
type Labels ¶
Labels is a map of labels where the map's key is the same as the label's key.
func Map2Labels ¶
Map2Labels transforms in the form: map[key(string)]value(string) into Labels. The source argument will overwrite the source written in the key of the given map. Example: l := Map2Labels(map[string]string{"k8s:foo": "bar"}, "cilium") fmt.Printf("%+v\n", l)
map[string]Label{"foo":Label{Key:"foo", Value:"bar", Source:"cilium"}}
func NewLabelsFromModel ¶
NewLabelsFromModel creates labels from string array.
func ParseStringLabels ¶
ParseStringLabels returns label representations from strings.
func (Labels) AppendPrefixInKey ¶
AppendPrefixInKey appends the given prefix to all the Key's of the map and the respective Labels' Key.
func (Labels) DeleteMarked ¶
DeleteMarked deletes the labels which have the DeletionMark set and returns true if any of them were deleted.
func (Labels) MarkAllForDeletion ¶
func (l Labels) MarkAllForDeletion()
MarkAllForDeletion marks all the labels with the DeletionMark.
func (Labels) MergeLabels ¶
MergeLabels merges labels from into to. It overwrites all labels with the same Key as from written into to. Example: to := Labels{Label{key1, value1, source1}, Label{key2, value3, source4}} from := Labels{Label{key1, value3, source4}} to.MergeLabels(from) fmt.Printf("%+v\n", to)
Labels{Label{key1, value3, source4}, Label{key2, value3, source4}}
type OpLabels ¶
type OpLabels struct { // Active labels that are enabled and disabled but not deleted Custom Labels // Labels derived from orchestration system OrchestrationIdentity Labels //OrchestrationIdentity // OrchestrationIdentity labels which have been disabled Disabled Labels //OrchestrationInfo - labels from orchestration which are not used in determining a security identity OrchestrationInfo Labels }
OpLabels represents the the possible types.
func NewOplabelsFromModel ¶
func NewOplabelsFromModel(base *models.LabelConfiguration) *OpLabels
NewOplabelsFromModel creates new label from the model.
func (*OpLabels) AllLabels ¶ added in v0.10.0
AllLabels returns all Labels within the provided OpLabels.
func (*OpLabels) IdentityLabels ¶ added in v0.10.0
IdentityLabels returns map of labels that are used when determining a security identity.