View Source
const (
	KEY_NS  = "Namespace"
	KEY_PO  = "Pod"
	KEY_NP  = "NetworkPolicy"
	KEY_GNP = "GlobalNetworkPolicy"
	KEY_GC  = "GlobalFelixConfig"
	KEY_HC  = "HostConfig"
	KEY_IP  = "IPPool"
	KEY_NO  = "Node"
	KEY_RS  = "CalicoReadyState"

Keys used to identify various bits of state stored on a per-resource basis.


This section is empty.


func BuildExtensionsClientV1

func BuildExtensionsClientV1(cfg rest.Config) (*rest.RESTClient, error)

BuildExtensionsClientV1 builds a RESTClient configured to interact with extensions/NetworkPolicy

func VethNameForWorkload

func VethNameForWorkload(workload string) string

VethNameForWorkload returns a deterministic veth name for the given Kubernetes workload.


type Converter

type Converter struct {

TODO: make this private and expose a public conversion interface instead

func (Converter) NamespaceToProfile

func (c Converter) NamespaceToProfile(ns *kapiv1.Namespace) (*model.KVPair, error)

NamespaceToProfile converts a Namespace to a Calico Profile. The Profile stores labels from the Namespace which are inherited by the WorkloadEndpoints within the Profile. This Profile also has the default ingress and egress rules, which are both 'allow'.

func (Converter) NetworkPolicyToPolicy

func (c Converter) NetworkPolicyToPolicy(np *extensions.NetworkPolicy) (*model.KVPair, error)

NetworkPolicyToPolicy converts a k8s NetworkPolicy to a model.KVPair.

func (Converter) PodToWorkloadEndpoint

func (c Converter) PodToWorkloadEndpoint(pod *kapiv1.Pod) (*model.KVPair, error)

PodToWorkloadEndpoint converts a Pod to a WorkloadEndpoint. It assumes the calling code has verified that the provided Pod is valid to convert to a WorkloadEndpoint.

type KubeClient

type KubeClient struct {
	// contains filtered or unexported fields

func NewKubeClient

func NewKubeClient(kc *capi.KubeConfig) (*KubeClient, error)

func (*KubeClient) Apply

func (c *KubeClient) Apply(d *model.KVPair) (*model.KVPair, error)

Set an existing entry in the datastore. This ignores whether an entry already exists.

func (*KubeClient) Create

func (c *KubeClient) Create(d *model.KVPair) (*model.KVPair, error)

Create an entry in the datastore. This errors if the entry already exists.

func (*KubeClient) Delete

func (c *KubeClient) Delete(d *model.KVPair) error

Delete an entry in the datastore. This is a no-op when using the k8s backend.

func (*KubeClient) EnsureCalicoNodeInitialized

func (c *KubeClient) EnsureCalicoNodeInitialized(node string) error

func (*KubeClient) EnsureInitialized

func (c *KubeClient) EnsureInitialized() error

EnsureInitialized checks that the necessary custom resource definitions exist in the backend. This usually passes when using etcd as a backend but can often fail when using KDD as it relies on various custom resources existing. To ensure the datastore is initialized, this function checks that a known custom resource is defined: GlobalFelixConfig. It accomplishes this by trying to set the ClusterType (an instance of GlobalFelixConfig).

func (*KubeClient) Get

func (c *KubeClient) Get(k model.Key) (*model.KVPair, error)

Get an entry from the datastore. This errors if the entry does not exist.

func (*KubeClient) List

func (c *KubeClient) List(l model.ListInterface) ([]*model.KVPair, error)

List entries in the datastore. This may return an empty list if there are no entries matching the request in the ListInterface.

func (*KubeClient) Syncer

func (c *KubeClient) Syncer(callbacks api.SyncerCallbacks) api.Syncer

func (*KubeClient) Update

func (c *KubeClient) Update(d *model.KVPair) (*model.KVPair, error)

Update an existing entry in the datastore. This errors if the entry does not exist.


Path Synopsis