kubecontroller

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2020 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CRDStatusToNCRequest

func CRDStatusToNCRequest(crdStatus nnc.NodeNetworkConfigStatus) (cns.CreateNetworkContainerRequest, error)

CRDStatusToNCRequest translates a crd status to createnetworkcontainer request

func GetKubeConfig

func GetKubeConfig() (*rest.Config, error)

GetKubeConfig precedence * --kubeconfig flag pointing at a file at this cmd line * KUBECONFIG environment variable pointing at a file * In-cluster config if running in cluster * $HOME/.kube/config if exists

func NewCrdRequestController

func NewCrdRequestController(restService *restserver.HTTPRestService, kubeconfig *rest.Config) (*crdRequestController, error)

NewCrdRequestController given a reference to CNS's HTTPRestService state, returns a crdRequestController struct

Types

type APIDirectClient added in v1.1.6

type APIDirectClient struct {
	// contains filtered or unexported fields
}

APIDirectClient is a direct client to a kubernetes API server

func NewAPIDirectClient added in v1.1.6

func NewAPIDirectClient(kubeconfig *rest.Config) (*APIDirectClient, error)

NewAPIDirectClient creates a new APIDirectClient

func (*APIDirectClient) ListPods added in v1.1.6

func (apiClient *APIDirectClient) ListPods(cntxt context.Context, namespace, node string) (*corev1.PodList, error)

ListPods lists all pods in the given namespace and node

type CRDDirectClient added in v1.1.6

type CRDDirectClient struct {
	// contains filtered or unexported fields
}

CRDDirectClient is a direct client to CRDs in the API Server.

func NewCRDDirectClient added in v1.1.6

func NewCRDDirectClient(kubeconfig *rest.Config, groupVersion *schema.GroupVersion) (*CRDDirectClient, error)

NewCRDDirectClient creates a new direct crd client to the api server

func (*CRDDirectClient) Get added in v1.1.6

func (crdClient *CRDDirectClient) Get(cntxt context.Context, name, namespace, typeName string) (*nnc.NodeNetworkConfig, error)

Get gets a crd

type CrdReconciler

type CrdReconciler struct {
	KubeClient      KubeClient
	NodeName        string
	CNSClient       cnsclient.APIClient
	IPAMPoolMonitor cns.IPAMPoolMonitor
}

CrdReconciler watches for CRD status changes

func (*CrdReconciler) Reconcile

func (r *CrdReconciler) Reconcile(request reconcile.Request) (reconcile.Result, error)

Reconcile is called on CRD status changes

func (*CrdReconciler) SetupWithManager

func (r *CrdReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager Sets up the reconciler with a new manager, filtering using NodeNetworkConfigFilter

type DirectAPIClient added in v1.1.6

type DirectAPIClient interface {
	ListPods(cntxt context.Context, namespace, node string) (*corev1.PodList, error)
}

DirectAPIClient is an interface to talk directly with API Server without cache

type DirectCRDClient added in v1.1.6

type DirectCRDClient interface {
	Get(cntxt context.Context, name, namespace, typeName string) (*nnc.NodeNetworkConfig, error)
}

DirectCRDClient is an interface to get CRDs directly, without cache

type KubeClient

type KubeClient interface {
	Get(ctx context.Context, key client.ObjectKey, obj runtime.Object) error
	Update(ctx context.Context, obj runtime.Object, opts ...client.UpdateOption) error
}

KubeClient is an interface that talks to the API server

type NodeNetworkConfigFilter

type NodeNetworkConfigFilter struct {
	predicate.Funcs
	// contains filtered or unexported fields
}

func (NodeNetworkConfigFilter) Create

Only process create events if CRD name equals this host's name

func (NodeNetworkConfigFilter) Delete

TODO: Decide what deleteing crd means with DNC Ignore all for now

func (NodeNetworkConfigFilter) Update

Returns true if request is to be processed by Reconciler Checks that old generation equals new generation because status changes don't change generation number

Jump to

Keyboard shortcuts

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