controllers

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Overview

Package controllers provides Iter8 controller for reconciling Iter8 routemap resources

Index

Constants

This section is empty.

Variables

View Source
var AllRoutemaps = routemaps{
	// contains filtered or unexported fields
}

AllRoutemaps contains all the routemaps known to the controller

Functions

func Start

func Start(stopCh <-chan struct{}, client k8sclient.Interface) error

Start starts all Iter8 controllers if this pod is the leader

Types

type AllRouteMapsInterface added in v0.15.0

type AllRouteMapsInterface interface {
	GetAllRoutemaps() RoutemapsInterface
}

AllRouteMapsInterface is interface defines way to get all routemaps

type Config

type Config struct {
	// ResourceTypes map from shortnames of Kubernetes API resources to their GVRs with conditions
	ResourceTypes map[string]GroupVersionResourceConditions `json:"resourceTypes,omitempty"`
	// DefaultResync period for controller watch functions
	DefaultResync string `json:"defaultResync,omitempty"`
	// ClusterScoped is true if Iter8 controller is cluster-scoped
	ClusterScoped bool `json:"clusterScoped,omitempty"`
}

Config defines the configuration of the controllers

type DefaultRoutemaps added in v0.15.0

type DefaultRoutemaps struct{}

DefaultRoutemaps is default implementation

func (*DefaultRoutemaps) GetAllRoutemaps added in v0.15.0

func (cm *DefaultRoutemaps) GetAllRoutemaps() RoutemapsInterface

GetAllRoutemaps is default implementation that returns package local map

type GroupVersionResourceConditions

type GroupVersionResourceConditions struct {
	schema.GroupVersionResource
	Conditions []string `json:"conditions,omitempty"`
}

GroupVersionResourceConditions is a Kubernetes resource type along with a list of conditions

type RoutemapInterface added in v0.15.0

type RoutemapInterface interface {
	// RLock locks the object for reading
	RLock()
	// RUnlock unlocks an object locked for reading
	RUnlock()
	// GetName returns the name of the object
	GetName() string
	// GetNamespace returns the namespace of the object
	GetNamespace() string
	// Weights provides the relative weights from traffic routing between versions
	Weights() []uint32
	// GetVersions returns a list of versions
	GetVersions() []VersionInterface
}

RoutemapInterface defines behavior of a routemap

type RoutemapsInterface added in v0.15.0

type RoutemapsInterface interface {
	// GetRoutemapFromNamespaceName returns a route map with the given namespace and name
	GetRoutemapFromNamespaceName(string, string) RoutemapInterface
}

RoutemapsInterface defines behavior for a set of routemaps

type VersionInterface added in v0.15.0

type VersionInterface interface {
	// GetSignature returns a signature of a version
	GetSignature() *string
}

VersionInterface defines behavior for a version

Directories

Path Synopsis
Package k8sclient provides the Kubernetes client for the controllers package
Package k8sclient provides the Kubernetes client for the controllers package
fake
Package fake provides fake Kuberntes clients for testing
Package fake provides fake Kuberntes clients for testing

Jump to

Keyboard shortcuts

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