api

package
v0.29.5 Latest Latest
Warning

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

Go to latest
Published: Apr 9, 2024 License: Apache-2.0 Imports: 12 Imported by: 15

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddResourceList

func AddResourceList(x, y core.ResourceList) core.ResourceList

func AggregateContainerResources

func AggregateContainerResources(
	obj map[string]interface{},
	fn func(rr core.ResourceRequirements) core.ResourceList,
	aggregate func(x, y core.ResourceList) core.ResourceList,
	fields ...string,
) (core.ResourceList, error)

func AppNodeResources

func AppNodeResources(
	obj map[string]interface{},
	fn func(rr core.ResourceRequirements) core.ResourceList,
	fields ...string,
) (core.ResourceList, int64, error)

func AppNodeResourcesV2 added in v0.29.1

func AppNodeResourcesV2(
	obj map[string]interface{},
	fn func(rr core.ResourceRequirements) core.ResourceList,
	containerName string,
	fields ...string,
) (core.ResourceList, int64, error)

func ContainerResources

func ContainerResources(
	obj map[string]interface{},
	fn func(rr core.ResourceRequirements) core.ResourceList,
	fields ...string,
) (core.ResourceList, error)

func GetContainerByName added in v0.29.1

func GetContainerByName(containers []core.Container, name string) *core.Container

func IsRegistered added in v0.0.8

func IsRegistered(gvk schema.GroupVersionKind) bool

func MaxResourceList

func MaxResourceList(x, y core.ResourceList) core.ResourceList

func MulResourceList

func MulResourceList(x core.ResourceList, multiplier int64) core.ResourceList

func RegisteredTypes added in v0.0.2

func RegisteredTypes() []schema.GroupVersionKind

func ResourceListForRoles

func ResourceListForRoles(rr map[PodRole]core.ResourceList, roles []PodRole) core.ResourceList

func StorageResources

func StorageResources(
	obj map[string]interface{},
	fn func(rr core.ResourceRequirements) core.ResourceList,
	fields ...string,
) (core.ResourceList, error)

func SubtractResourceList added in v0.25.4

func SubtractResourceList(x, y core.ResourceList) core.ResourceList

func ToResourceRequirements added in v0.29.0

func ToResourceRequirements(vrr core.VolumeResourceRequirements) core.ResourceRequirements

Types

type AppNode

type AppNode struct {
	Replicas    *int64                         `json:"replicas,omitempty"`
	PodTemplate ofst.PodTemplateSpec           `json:"podTemplate,omitempty"`
	Storage     core.PersistentVolumeClaimSpec `json:"storage,omitempty"`
}

type AppNodeV2 added in v0.29.1

type AppNodeV2 struct {
	Replicas    *int64                         `json:"replicas,omitempty"`
	PodTemplate ofstv2.PodTemplateSpec         `json:"podTemplate,omitempty"`
	Storage     core.PersistentVolumeClaimSpec `json:"storage,omitempty"`
}

type Container

type Container struct {
	Resources core.ResourceRequirements `json:"resources"`
}

type NotRegistered

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

func (NotRegistered) Error

func (e NotRegistered) Error() string

type PodRole

type PodRole string
const (
	PodRoleDefault          PodRole = ""
	PodRoleInit             PodRole = "init"
	PodRoleRouter           PodRole = "router"
	PodRoleExporter         PodRole = "exporter"
	PodRoleTotalShard       PodRole = "total_shard"
	PodRoleShard            PodRole = "shard"
	PodRoleReplicasPerShard PodRole = "replicas_per_shard"
	PodRoleConfigServer     PodRole = "config_server"
	PodRoleMongos           PodRole = "mongos"
	PodRoleAggregator       PodRole = "aggregator"
	PodRoleLeaf             PodRole = "leaf"
)

type ReplicaList

type ReplicaList map[PodRole]int64

type ResourceCalculator

type ResourceCalculator interface {
	Replicas(obj map[string]interface{}) (int64, error)
	RoleReplicas(obj map[string]interface{}) (ReplicaList, error)

	Mode(obj map[string]interface{}) (string, error)
	UsesTLS(obj map[string]interface{}) (bool, error)

	TotalResourceLimits(obj map[string]interface{}) (core.ResourceList, error)
	TotalResourceRequests(obj map[string]interface{}) (core.ResourceList, error)

	AppResourceLimits(obj map[string]interface{}) (core.ResourceList, error)
	AppResourceRequests(obj map[string]interface{}) (core.ResourceList, error)

	RoleResourceLimits(obj map[string]interface{}) (map[PodRole]core.ResourceList, error)
	RoleResourceRequests(obj map[string]interface{}) (map[PodRole]core.ResourceList, error)
}

func Load

func Load(obj map[string]interface{}) (ResourceCalculator, error)

type ResourceCalculatorFuncs

type ResourceCalculatorFuncs struct {
	// Resources used by the main application (eg, database) containers
	AppRoles []PodRole

	// usually AppRoles + Exporter + Any custom sidecar (label selector etc.) that is used at runtime
	// Must NOT include init container resources
	RuntimeRoles []PodRole

	RoleReplicasFn         func(obj map[string]interface{}) (ReplicaList, error)
	ModeFn                 func(obj map[string]interface{}) (string, error)
	UsesTLSFn              func(obj map[string]interface{}) (bool, error)
	RoleResourceLimitsFn   func(obj map[string]interface{}) (map[PodRole]core.ResourceList, error)
	RoleResourceRequestsFn func(obj map[string]interface{}) (map[PodRole]core.ResourceList, error)
}

func (ResourceCalculatorFuncs) AppResourceLimits

func (c ResourceCalculatorFuncs) AppResourceLimits(obj map[string]interface{}) (core.ResourceList, error)

func (ResourceCalculatorFuncs) AppResourceRequests

func (c ResourceCalculatorFuncs) AppResourceRequests(obj map[string]interface{}) (core.ResourceList, error)

func (ResourceCalculatorFuncs) Mode

func (c ResourceCalculatorFuncs) Mode(obj map[string]interface{}) (string, error)

func (ResourceCalculatorFuncs) Replicas

func (c ResourceCalculatorFuncs) Replicas(obj map[string]interface{}) (int64, error)

func (ResourceCalculatorFuncs) RoleReplicas

func (c ResourceCalculatorFuncs) RoleReplicas(obj map[string]interface{}) (ReplicaList, error)

func (ResourceCalculatorFuncs) RoleResourceLimits

func (c ResourceCalculatorFuncs) RoleResourceLimits(obj map[string]interface{}) (map[PodRole]core.ResourceList, error)

func (ResourceCalculatorFuncs) RoleResourceRequests

func (c ResourceCalculatorFuncs) RoleResourceRequests(obj map[string]interface{}) (map[PodRole]core.ResourceList, error)

func (ResourceCalculatorFuncs) TotalResourceLimits

func (c ResourceCalculatorFuncs) TotalResourceLimits(obj map[string]interface{}) (core.ResourceList, error)

func (ResourceCalculatorFuncs) TotalResourceRequests

func (c ResourceCalculatorFuncs) TotalResourceRequests(obj map[string]interface{}) (core.ResourceList, error)

func (ResourceCalculatorFuncs) UsesTLS added in v0.0.7

func (c ResourceCalculatorFuncs) UsesTLS(obj map[string]interface{}) (bool, error)

Jump to

Keyboard shortcuts

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